[英]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文件,這里是代碼
我在這里使用express的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 }
知道為什么不通過暴發戶工作嗎?
它需要能夠將上傳的文件寫入磁盤,因此它可能沒有寫目標目錄的權限。
確保新貴通過有權訪問您在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
這是我找到答案的地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.