Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在我的服务器上使用express运行node js应用程序_Asp.net_Node.js - Fatal编程技术网

Asp.net 如何在我的服务器上使用express运行node js应用程序

Asp.net 如何在我的服务器上使用express运行node js应用程序,asp.net,node.js,Asp.net,Node.js,我是Node.Js的新手。我必须用gulp编译我的sass文件。我已经创建了一个gulpfile和node js应用程序来运行gulp任务。我有一个ASP.NET页面。当我点击一个按钮时,我只需要创建一个sass文件并通过调用我的节点应用程序来运行gulp任务 这是我的node.js文件 var express = require('express'); var app = express(); var exec = require('child_process').exec; app.use

我是Node.Js的新手。我必须用gulp编译我的sass文件。我已经创建了一个gulpfile和node js应用程序来运行gulp任务。我有一个ASP.NET页面。当我点击一个按钮时,我只需要创建一个sass文件并通过调用我的节点应用程序来运行gulp任务

这是我的node.js文件

var express = require('express');
var app = express();
var exec = require('child_process').exec;

app.use(express.static('public'));
app.use(function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});

app.get('/send', function (req, res) {
    exec("gulp --gulpfile subdomain\\gulpfile.js");
    res.send('success!');
});

app.listen(5353, function () {
    console.log('Example app listening on port 5353!');
});
这是我的package.json文件

"dependencies": {
    "child_process": "^1.0.2",
    "express": "^4.16.3",
    "gulp": "^3.9.1",
    "gulp-concat": "^2.6.1",
    "gulp-cssmin": "^0.2.0",
    "gulp-filter": "^5.1.0",
    "gulp-sass": "^4.0.1"
  }
我可以运行node应用程序,但当我对node应用程序进行ajax调用时,它总是转到本地pc,而不是服务器

function CreateCss(s, e) {    
    $.ajax({
        url: 'http://localhost:5353/send?domain=' + s.cpDomain,
        method: 'GET',
        success: function (res) {
            console.log(res);
        },
        error: function (response) {
            console.log('Error!');
            console.log(response);
        }
    });    
}
我应该怎么做才能在我的服务器上调用我的节点应用程序

编辑

关于localhost部分的更新

当我更改节点js文件时,如下所示

var options = {
    host: '35.34.35.34',
    port: 3001
};
app.listen(options, function () {
    console.log('Example app listening on port '+ options.port + '!');
});
它给出了以下错误

Error: listen EADDRNOTAVAIL 35.34.35.34:3001
    at Object._errnoException (util.js:992:11)
    at _exceptionWithHostPort (util.js:1014:20)
    at Server.setupListenHandle [as _listen2] (net.js:1338:19)
    at listenInCluster (net.js:1396:12)
    at doListen (net.js:1505:7)
    at _combinedTickCallback (internal/process/next_tick.js:141:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
    at Function.Module.runMain (module.js:695:11)
    at startup (bootstrap_node.js:191:16)
    at bootstrap_node.js:612:3

首先在env变量中添加端口,您可以使用
process
对象访问它

像这样:

var express = require('express');
var app = express();
var exec = require('child_process').exec;

const PORT = process.env.PORT || 3000;
app.use(express.static('public'));
app.use(function (req, res, next) {
   res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});

app.get('/send', function (req, res) {
    exec("gulp --gulpfile subdomain\\gulpfile.js");
res.send('success!');
});

 app.listen(PORT, function () {
    console.log('Example app listening on port 5353!');
});
并使用此命令在windows中设置端口:


set PORT=1234

因为您在ajax callI中调用localhost,我意识到这一点,但我找不到如何更改它并使其工作?您可以在服务器上部署node.js应用程序并为端口添加env变量。在使用ip服务器和端口调用ajax之后,我该怎么做?我尝试了一些我在网上找到的例子,但没有成功。正如我所说,我对NodeJS是新手。对不起,您使用的是windows server?仍不工作。有没有办法更换主机?我想我应该以www.abc.com为例。