使用 ubuntu upstart 启动时,node js multer 文件上传不起作用
node js multer file upload not working when started with ubuntu upstart
我有一个 VPS(ubuntu 14.04) 和一个带有 multer 的 nodejs 应用程序用于处理程序文件上传,当我通过节点 ex 启动服务器时它可以找到。"node my-server.js"
但如果我从 upstart ex."sudo start node-app" 开始
node-app 是一个 ubuntu upstart conf 文件,这里是代码
multer 我用express 这里是代码。
我的-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 }
知道为什么不能通过 upstart 工作吗?
它需要能够将上传的文件写入磁盘,因此它可能没有写入目标目录的权限。
确保 upstart 从有权访问您在 multer 中配置的上传目录的用户帐户运行它。
正如@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 是我找到答案的地方。
我有一个 VPS(ubuntu 14.04) 和一个带有 multer 的 nodejs 应用程序用于处理程序文件上传,当我通过节点 ex 启动服务器时它可以找到。"node my-server.js"
但如果我从 upstart ex."sudo start node-app" 开始 node-app 是一个 ubuntu upstart conf 文件,这里是代码
multer 我用express 这里是代码。 我的-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 }
知道为什么不能通过 upstart 工作吗?
它需要能够将上传的文件写入磁盘,因此它可能没有写入目标目录的权限。
确保 upstart 从有权访问您在 multer 中配置的上传目录的用户帐户运行它。
正如@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 是我找到答案的地方。