![](/img/trans.png)
[英]Node.js: Trying to install a script wrapped in forever-monitor as a Windows service using NSSM
[英]CORS with Node.js Express running as Windows Service with NSSM
當我自己運行node app.js
,在瀏覽器中沒有收到CORS錯誤。 當我將其作為服務運行時,我沒有在OPTIONS請求中得到錯誤,但是在POST請求中得到了錯誤。
我使用nssm創建了服務。 我將服務配置為使用與運行節點進程相同的帳戶登錄。
var express = require('express');
// The `socket` module initializes socket.io for other endpoints
var io = require('./modules/socket');
var upload = require('./routes/upload');
var app = express();
app.configure(function () {
app.use(express.cookieParser());
app.use(express.session({secret: 'secret', key: 'express.sid'}));
});
app.set('port', 5000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.all('/up', function(req, res, next) {
res.header('Access-Control-Allow-Credentials', true);
res.header('Access-Control-Allow-Origin', 'https://####.###');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With');
if (req.method == "OPTIONS") {
res.send(200);
} else {
next();
}
});
app.post('/up', upload.upload);
您能想到為什么POST錯誤僅在作為服務運行時才會發生的原因嗎?
找到了問題。 使用NSSM創建服務時,啟動目錄必須是應用程序主javascript文件的位置,而不是節點可執行文件的位置。
寫入磁盤時似乎是權限問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.