gpt4 book ai didi

node.js - Formidable 和 Node.js TypeError : Cannot read property 'path' of undefined

转载 作者:太空宇宙 更新时间:2023-11-03 21:59:58 27 4
gpt4 key购买 nike

如果您正在阅读本文,您可能正在学习 Manuel Kiessling 的 Node 教程。在完成本教程的文件上传部分时,我收到以下错误。

fs.rename(files.upload.path, "img/img.jpg", function(error) {
^
TypeError: Cannot read property 'path' of undefined

我四处搜寻,发现thisthis ,但他们的结论相当不确定,并且提供的帮助很少。

最佳答案

首先,本教程确实以错误的顺序传递请求和响应。我做的第一件事是将顺序从 (响应,请求) 更改为 (请求,响应)。 (确保在所有地方都这样做)。这样做的原因是因为我非常确定 HTTPcreateServer() 中的 onRequest 函数会按此顺序传递它们。

一旦我这样做了,我仍然遇到同样的错误。但是通过记录来 self 的表单的信息

...
var form = new formidable.IncomingForm();
console.log("About to parse...");
form.parse(request, function(error, fields, files) {

console.log("Parsing done.");
console.dir(request.headers);
console.log(fields);
console.log(files);
...

我注意到 fields 键包含我要查找的内容,而 files 键为空。

{ upload: '2015-03-08 14.54.06.jpg', 'Upload File': 'Submit' }
{}

从这里很明显我可以使用fields.upload。使用这个返回了另一个错误,它不是一个字符串(或者至少不是一个强大的字符串会接受的)。 toString() 似乎也不起作用,所以我使用了替代转换:

fs.rename(fields.upload + "", "img/img.jpg", function(error) {
...
}

这并不理想,但它成功了。

这是通过 node@0.10.35formidable@1.0.17 完成的。我不知道我的解决方案是否适用于每个人,但希望它能为你们中的一些人指明正确的方向。这种差异可能是由于他在教程中使用了旧版本的 Node 和 formidable。

关于node.js - Formidable 和 Node.js TypeError : Cannot read property 'path' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28953535/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com