[英]Using express.js to execute a function after receiving an http request?
因此,我有一个角度控制器,可以在按下按钮后成功发出http请求。 我有一个正在运行的node.js服务器,该服务器获取请求,然后将其发送回YOU HAVE SUCCEEDED! HTTP REQUEST RECEIVED!
YOU HAVE SUCCEEDED! HTTP REQUEST RECEIVED!
。 我想在收到请求时执行一个函数,但是该函数位于./Source/Server/test.js
文件夹中的文件中。
如何告诉我的server.js文件发送命令以运行该函数???
server.js:
var express = require('express');
var app = express();
var fs = require('fs');
app.use(express.static(__dirname + '/Source/Client/Templates'));
app.use(express.static(__dirname + '/'));
app.get('/', function (req, res) {
res.sendFile('/Source/Client/Templates/Home.html', {root: __dirname });
});
app.get('/ThisIsATest', function (req, res) {
res.send('YOU HAVE SUCCEEDED! HTTP REQUEST RECEIVED!')
})
app.listen(3000);
console.log("running at port 3000");
test.js:
var run = require('./quickstart.js');
run.runQuickstart();
控制器:
angular.module('DaycareApp').controller('WaitingListController', ['$scope', '$http', function($scope, $http){
$scope.test = function() {
$http.get('/ThisIsATest')
.then(function(response) {
alert(response.data);
});
};
}]);
公开必要的功能后,可以将test.js作为文件,如下所示:
// test.js
// ========
var run = require('./quickstart.js');
module.exports = {
run: function () {
run.runQuickstart();
}
};
在server.js中 ,要求它:
var test = require('./Source/Server/test');
并用于: test.run()
。
在test.js中,您可以像这样导出模块
var run = require('./quickstart.js');
function mySpecialFunction() {
return run.runQuickstart();
}
module.exports = {
mySpecialFunction: mySpecialFunction
};
现在,在server.js或控制器所在的任何位置,您都可以通过使用require将test.js插入模块中来调用该函数。
var test = require('./test.js');
app.get('/ThisIsATest', function (req, res) {
res.send(test.mySpecialFunction());
});
你能做点什么:
server.js
var express = require('express');
var app = express();
var fs = require('fs');
var run = require('./path/to/quickstart.js');
// ...
app.get('/ThisIsATest', function (req, res) {
run.runQuickstart();
res.send('YOU HAVE SUCCEEDED! HTTP REQUEST RECEIVED!')
})
// ...
然后在test.js中:
var run = require('./quickstart.js');
exports.runQuickstart = function() {
run.runQuickstart();
};
您可以要求文件
var outsideFunction = require(__dirname + '/Source/Server/test.js');
然后将其添加到路线。
app.get('/ThisIsATest', function (req, res) {
outsideFunction(req, res);
res.send('YOU HAVE SUCCEEDED! HTTP REQUEST RECEIVED!')
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.