Javascript 将图像URL保存到SailsJS中的用户

Javascript 将图像URL保存到SailsJS中的用户,javascript,node.js,sails.js,sails-mongo,sails-skipper,Javascript,Node.js,Sails.js,Sails Mongo,Sails Skipper,我正在使用sailsjsv1.0.0创建一个api 我有一个将图像上传到服务器的操作,它工作得很好,但我遇到的问题是,我想将图像URL保存到上传图像的用户。这是用户配置文件图像 代码似乎工作正常,但在上传图像后,我在终端中遇到了一个错误。我想它和回调有关 这是我的控制器: let fs = require('fs'); module.exports = { upload : async function(req, res) { req.file('image').uplo

我正在使用sailsjsv1.0.0创建一个api

我有一个将图像上传到服务器的操作,它工作得很好,但我遇到的问题是,我想将图像URL保存到上传图像的用户。这是用户配置文件图像

代码似乎工作正常,但在上传图像后,我在终端中遇到了一个错误。我想它和回调有关

这是我的控制器:

let fs = require('fs');

module.exports = {

    upload : async function(req, res) {
      req.file('image').upload({ dirname : process.cwd() + '/assets/images/profile' }, function(err, uploadedImage) {
        if (err) return res.negotiate(err);
        let filename = uploadedImage[0].fd.substring(uploadedImage[0].fd.lastIndexOf('/')+1);
        let uploadLocation = process.cwd() +'/assets/images/uploads/' + filename;
        let tempLocation = process.cwd() + '/.tmp/public/images/uploads/' + filename;
        fs.createReadStream(uploadLocation).pipe(fs.createWriteStream(tempLocation));
        res.json({ files : uploadedImage[0].fd.split('assets/')[1] })
      })
    }

};
关于.tmp文件夹的读取流,我编写它是为了在上传图像时使其可用

我试图在测试之前查询用户

res.json({ files : uploadedImage[0].fd.split('assets/')[1] })
行,但它在终端中给了我一个错误

实现此代码的最佳方法是什么

User.update({ id : req.body.id }).set({ image : uploadedImage[0].fd.split('images/')[1] });

您正在将图像上载到“/assets/images/profile”,并尝试从“/assets/images/uploads/”获取图像。tempLocation变量中的路径也错误。将您的代码更改为following,它有望开始工作

upload : async function(req, res) {
  req.file('image').upload({ dirname : process.cwd() + '/assets/images/profile' },
  async function(err, uploadedImage) {
  if (err) return res.negotiate(err);
  let filename = uploadedImage[0].fd.substring(uploadedImage[0].fd.lastIndexOf('/')+1);
  let uploadLocation = process.cwd() +'/assets/images/profile/' + filename;
  let tempLocation = process.cwd() + '/.tmp/public/images/profile/' + filename;
  fs.createReadStream(uploadLocation).pipe(fs.createWriteStream(tempLocation));

  await User.update({ id : req.body.id }).set({ image : uploadedImage[0].fd.split('images/')[1] });

  res.json({ files : uploadedImage[0].fd.split('assets/')[1] })
})
},

您在终端中得到的错误消息是什么?如果我在上传回调中使用“async”,然后使用“wait”更新用户,我会得到以下错误:错误:enoint:没有这样的文件或目录,请打开“/Users/Haboosh/Desktop/dental/dental server/assets/images/uploads/0aab9fbb-5419-4787-851e-4469c419a27d.jpg”[nodemon]应用程序崩溃-正在等待文件更改,然后再启动@MjZac