尝试将Node.js作为Windows服务运行。我使用 nssm.exe 来创建服务,然后启动然后立即停止。
错误 - “无法在本地计算机上恢复ListenerNodeJS服务。该服务未返回错误。这可能是内部Windows错误或内部服务错误。如果问题仍然存在,请与系统管理员联系。”
我也尝试过使用 srvstart 并做同样的事情,但这次错误是“服务已启动并停止。如果没有工作要做,某些服务会自动停止”(等...)
以下是listener.js(我希望作为服务运行的javascript)的内容
///////////////////////////////////////////////
// get the querystring
//////////////////////////////////////////////
var http = require("http"), querystring = require("querystring");
var dirName="";
var pathName="v:/Opportunities/";
http.createServer(function(req, res) {
//parse everything after the "?" into key/value pairs
var qs = querystring.parse(req.url.split("?")[1]),
dirName =pathName + qs.dirName;
html = "" + "Directory to write " + dirName;
res.end(html);
createDir(dirName);
}).listen(1337, '0.0.0.0');
///////////////////////////////////////////////
// function: createDir Creates a directory from the querystring
///////////////////////////////////////////////
function createDir(d){
var fs = require('fs');
//see if the directory exists
if (!(fs.existsSync(d))) {
console.log("Directory does not exists. Creating directory...");
fs.mkdir(d);
///create sub folders
fs.mkdir(d+"/Drawings");
fs.mkdir(d+"/Pictures");
fs.mkdir(d+"/PO_Contracts");
fs.mkdir(d+"/Proposals");
fs.mkdir(d+"/Quotes");
fs.mkdir(d+"/SOW");
fs.mkdir(d+"/Vendor_Quotes");
}
else {
console.log("Directory exists.");
}
}
答案 0 :(得分:0)
我不得不使用Program Files作为nodejs.exe的位置。我只是将nodejs目录复制到另一个位置(C:\ nodejs)为了解决文件指向性写入问题,我不得不使用真正的磁盘字母,而不是映射驱动器。映射它对服务没有意义,因此我使用真正的驱动器号。