Asp.net 如何在我的服务器上使用express运行node js应用程序
我是Node.Js的新手。我必须用gulp编译我的sass文件。我已经创建了一个gulpfile和node js应用程序来运行gulp任务。我有一个ASP.NET页面。当我点击一个按钮时,我只需要创建一个sass文件并通过调用我的节点应用程序来运行gulp任务 这是我的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
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为例。