Javascript 然后使用Nodejs发送res
我是Javascript 然后使用Nodejs发送res,javascript,node.js,Javascript,Node.js,我是node.js的初学者,我正在尝试使用。然后从nodejs Admin.js const convert = require("../Services/Convert"); convert.video(myfile, videoid).then((data) => { const mymessage = data.data.message; if (!mymessage.msgError) {
node.js
的初学者,我正在尝试使用。然后从nodejs
Admin.js
const convert = require("../Services/Convert");
convert.video(myfile, videoid).then((data) => {
const mymessage = data.data.message;
if (!mymessage.msgError) {
console.log("GOOD")
}
});
Convert.js
const multer = require("multer");
const fs = require("fs"),
cloudconvert = new (require("cloudconvert"))(
"MjeYEgD8sZF7XIjvYftBirpmMJlsktjOSlL3RAogTr4VVXjRfWOS6dwTpa0Y19V9"
);
module.exports = {
video: (myfile, videoid) => {
const ucuk = myfile;
return fs
.createReadStream(ucuk.path)
.pipe(
cloudconvert.convert({
inputformat: "mp4",
outputformat: "mp3",
input: "upload",
})
)
.pipe(fs.createWriteStream("./upload/" + videoid + ".mp3"))
.on("finish", function () {
res.status(400).json({
message: { msgError: true },
});
});
},
};
这就是结果
events.js:292
throw er; // Unhandled 'error' event
^
TypeError: convert.video(...).then is not a function
有人能给我解释一下为什么这是一个错误,以及如何修复它吗?谢谢:)目前还不完全清楚错误是如何处理的,也不清楚事件“finish”为什么是错误的,但您需要返回一个
承诺才能在视频()
上使用then()
。比如:
const multer = require("multer");
const fs = require("fs"),
cloudconvert = new (require("cloudconvert"))(
"MjeYEgD8sZF7XIjvYftBirpmMJlsktjOSlL3RAogTr4VVXjRfWOS6dwTpa0Y19V9"
);
module.exports = {
video: (myfile, videoid) => {
return new Promise((resolve, reject) => {
const ucuk = myfile;
return fs
.createReadStream(ucuk.path)
.pipe(
cloudconvert.convert({
inputformat: "mp4",
outputformat: "mp3",
input: "upload",
})
)
.pipe(fs.createWriteStream("./upload/" + videoid + ".mp3"))
.on("error", function(err) {
reject(err); // use with `catch`
return res.status(400).json({
message: { msgError: true },
});
})
.on("finish", function () {
// finish is success?
// if not, put resolve into whatever event is success
resolve(); // to be able to use `then`
return res.status(200).json({
message: 'OK',
});
});
});
},
};
希望这有帮助 为什么我会犯这个错误,兄弟?res.status(400).json({^TypeError:无法读取undefinedOkay的属性'status',是的,这是因为res
在您的任何文件中都不存在。您需要以某种方式使res
可用。也许可以将路由处理程序代码添加到您的问题中,例如在其中指定路径、方法和中间件。您使用什么来处理e请求和响应?快车?嘿,兄弟,你能帮我吗?为了进一步提供帮助,你需要提供如何设置快车路线。请用路线代码更新你的问题。