簡體   English   中英

與NSSM一起作為Windows服務運行的Node.js Express的CORS

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM