使用ubuntu upstart启动时,节点js multer文件上传无法正常工作

时间:2015-04-17 20:22:34

标签: node.js express ubuntu-14.04 upstart multer

我有一个VPS(ubuntu 14.04)和一个带有multer的nodejs应用程序用于处理程序文件上传,当我通过节点ex启动服务器时它可以找到。" node my-server.js&#34 ;

但是如果我是通过upstart ex。" sudo start node-app" node-app是一个ubuntu upstart conf文件,这里是代码

multer我使用快递这里是代码。 我的-server.js

app.use(multer({
  dest: './public/images/',
  rename: function(fieldname, filename) {
    return filename;
  }
}));

我的暴发户文件:/etc/init/node-app.conf

description "node.js server"
author      "Name"

start on (local-filesystems and net-device-up IFACE=wlan0)

stop on shutdown

# Automatically Respawn:
respawn
respawn limit 99 5

script
    export HOME="/home/username/www/site-server/"
    exec node $HOME/bin/www 13002 >> /var/log/node.log 2>&1
end script

在我的node.log上我有这个。

{ [Error: Command failed: identify.im6: unable to open image `/home/username/www/my-node-app/public/images/hqdefault.jpg': No such file or directory @ error/blob.c/OpenBlob/2638.
] timedOut: false, killed: false, code: 1, signal: null }

任何想法为什么不通过暴发户工作?

2 个答案:

答案 0 :(得分:0)

它需要能够将上传的文件写入磁盘,因此它可能没有写入目标目录的权限。

确保upstart从有权访问您在multer中配置的上传目录的用户帐户运行它。

答案 1 :(得分:0)

好吧@porneL说ubuntu用户需要在磁盘上写入权限,所以我更改了我的upstart文件。

从此。

export HOME="/home/username/www/site-server/"
exec node $HOME/bin/www 13002 >> /var/log/node.log 2>&1

到这个

export HOME="/home/username/www/"
cd $HOME/site-server/
exec node bin/www >> /var/log/node.log 2>&1

Here是我找到答案的地方。