如何将数据从控制器传递到路由
how to pass data from conttoller to route
我正在尝试将数据从控制器传递到路由。
我想将状态代码从控制器更改为路由。假设如果处于控制器状态 200,则将其从路由
更改为 400
或
响应后只需简单打印 hello 或路由中的内容
这里是来自控制器文件的控制器
联系控制器。 js
exports.index = function(req, res) {
Contact.get(function(err, contacts) {
if (err) {
res.json({
status: "error",
message: err
});
}
res.json({
status: "success",
message: "Contacts retrieved successfully",
data: contacts
});
});
};
这是来自路由文件的路由
联系 router.js
var contactController = require('./contactController');
// Contact routes
router.route('/contacts')
.get(contactController.index)
按照本文使用 Express 路由器设计您的应用程序
https://scotch.io/tutorials/learn-to-use-the-new-router-in-expressjs-4
像这样定义你的控制器
exports.index = function(req, res, next) {
Contact.get(function(err, contacts) {
if (err) {
next(null,{
status: "error",
message: err
});
}
next({
status: "success",
message: "Contacts retrieved successfully",
data: contacts
},null);
});
};
像这样定义主应用程序文件
var contactController = require('./contactController');
var router = express.Router();
// apply the routes to our application
// route middleware that will happen on every request
router.use(function(req, res, next) {
// continue doing what we were doing and go to the route
next();
});
// about page route (http://localhost:8080/about)
router.get('/contacts', function(req, res) {
//here you can call your controller js method
contactController.index(req,res, function(data, err){
//change anything you want here and set into res.
if(err){
//change status and data
}
else{
//change status and data
}
})
});
不要结束控制器中的请求-响应循环,只是 return 来自控制器的结果而不是结束循环。
const httperror = require('http-errors');
exports.index = async function(parameter) {
Contact.get(function(err, contacts) {
if (err) {
throw new httperror(400, "Error occured!");
}
return {
status: "success",
message: "Contacts retrieved successfully",
data: contacts
}
});
};
请求应该从路由开始,响应应该从路由发送
const contactController = require('./contactController');
router.get('/contacts', function (req, res, next) {
contactController.index()
.then(result => {
res.json(result)
}).catch((error) => {
res.status(200).json({"Error":"Returned success code 200 even though error
occured"});
})
});
我正在尝试将数据从控制器传递到路由。
我想将状态代码从控制器更改为路由。假设如果处于控制器状态 200,则将其从路由
更改为 400或
响应后只需简单打印 hello 或路由中的内容
这里是来自控制器文件的控制器
联系控制器。 js
exports.index = function(req, res) {
Contact.get(function(err, contacts) {
if (err) {
res.json({
status: "error",
message: err
});
}
res.json({
status: "success",
message: "Contacts retrieved successfully",
data: contacts
});
});
};
这是来自路由文件的路由
联系 router.js
var contactController = require('./contactController');
// Contact routes
router.route('/contacts')
.get(contactController.index)
按照本文使用 Express 路由器设计您的应用程序
https://scotch.io/tutorials/learn-to-use-the-new-router-in-expressjs-4
像这样定义你的控制器
exports.index = function(req, res, next) {
Contact.get(function(err, contacts) {
if (err) {
next(null,{
status: "error",
message: err
});
}
next({
status: "success",
message: "Contacts retrieved successfully",
data: contacts
},null);
});
};
像这样定义主应用程序文件
var contactController = require('./contactController');
var router = express.Router();
// apply the routes to our application
// route middleware that will happen on every request
router.use(function(req, res, next) {
// continue doing what we were doing and go to the route
next();
});
// about page route (http://localhost:8080/about)
router.get('/contacts', function(req, res) {
//here you can call your controller js method
contactController.index(req,res, function(data, err){
//change anything you want here and set into res.
if(err){
//change status and data
}
else{
//change status and data
}
})
});
不要结束控制器中的请求-响应循环,只是 return 来自控制器的结果而不是结束循环。
const httperror = require('http-errors');
exports.index = async function(parameter) {
Contact.get(function(err, contacts) {
if (err) {
throw new httperror(400, "Error occured!");
}
return {
status: "success",
message: "Contacts retrieved successfully",
data: contacts
}
});
};
请求应该从路由开始,响应应该从路由发送
const contactController = require('./contactController');
router.get('/contacts', function (req, res, next) {
contactController.index()
.then(result => {
res.json(result)
}).catch((error) => {
res.status(200).json({"Error":"Returned success code 200 even though error
occured"});
})
});