我使用端口7777创建了一个NodeJS应用程序。
server.js
'use strict';
var express = require('express'),
router = require('./router');
var app = express();
var port = 7777;
app.use(router());
app.listen(port);
console.log('Doctor appointment at ' + port);
我从服务器和执行应用程序调用路由器为node server.js
router.js
'use strict';
var express = require('express');
var doctorAppointment = require('./controllers/doctorAppointment');
module.exports = function() {
var options = {
caseSensitive: true
};
console.log("Router");
// Instantiate an isolated express Router instance
var router = express.Router(options);
router.post('/appointment', doctorAppointment.takeAppoiment);
return router;
}
我从路由器调用控制器方法。控制器如下:
doctorAppointment.js
'use strict';
exports.takeAppoiment = function(req, res, next) {
console.log("Inside appointment");
}
执行后,控制器方法未调用
system@DT-LNX-315:~/Desktop/nodeJS/doctor-appointment$ node server.js
Router
Doctor appointment at 7777
在浏览器中显示为Cannot GET /
对于http://localhost:7777/appointment
显示为Cannot GET /appointment
。如何执行控制器方法?
答案 0 :(得分:2)
请使用
app.get('/appointment',function(req,res){
doctorAppointment.takeAppoiment();
})
<\ n>在router.js 中
答案 1 :(得分:0)
您正在使用以下代码行处理/appointment
的POST请求:
router.post('/appointment', doctorAppointment.takeAppointment);
如果您只是需要访问该页面,请将post
更改为get
:
router.get('/appointment', doctorAppointment.takeAppointment);
此外,您没有索引页面的处理程序,这就是您收到/
路径错误的原因。您可以用类似的方式添加处理程序:
router.get('/', indexHandler);