在路由文件函数调用
下面的代码无法正常工作,因为没有函数调用。
function checkQueryStringExists(request) {
var url_parts = url.parse(request.url, true);
var api_token = url_parts.query.api_token;
if(typeof api_token === 'undefined') {
return false;
}
return true;
}
router.post("/get-profile", function(request, response) {
response.setHeader('Content-Type', 'application/json');
var result = checkQueryStringExists(request);
if(!result) {
response.status(401).send(JSON.stringify({ "Status": false, "Message": "Invalid query string." }));
}
});
下面的代码工作,因为函数调用已被删除
router.post("/get-profile", function(request, response) {
response.setHeader('Content-Type', 'application/json');
var url_parts = url.parse(request.url, true);
var api_token = url_parts.query.api_token;
if(typeof api_token === 'undefined') {
response.status(401).send(JSON.stringify({ "Status": false, "Message": "Invalid query string." }));
}
});
这是否意味着我们不能在Node.js的使用功能,如上面?
回答如下:你绝对可以在使用的NodeJS功能。虽然使用功能的最好的办法是用异步/伺机这样可以保证你的函数的代码继续之前实际上返回。
checkQueryStringExists(request) {
return new Promise(async (resolve, reject) => {
var url_parts = url.parse(request.url, true);
var api_token = url_parts.query.api_token;
if(typeof api_token === 'undefined') {
resolve(false);
}
resolve(true);
}
});
router.post("/get-profile", async function(request, response) {
response.setHeader('Content-Type', 'application/json');
try{
var result = await checkQueryStringExists(request);
if(!result) {
response.status(401).send(JSON.stringify({ "Status": false, "Message": "Invalid query string." }));
} catch (e){
console.log(e)
}
});
在路由文件函数调用
下面的代码无法正常工作,因为没有函数调用。
function checkQueryStringExists(request) {
var url_parts = url.parse(request.url, true);
var api_token = url_parts.query.api_token;
if(typeof api_token === 'undefined') {
return false;
}
return true;
}
router.post("/get-profile", function(request, response) {
response.setHeader('Content-Type', 'application/json');
var result = checkQueryStringExists(request);
if(!result) {
response.status(401).send(JSON.stringify({ "Status": false, "Message": "Invalid query string." }));
}
});
下面的代码工作,因为函数调用已被删除
router.post("/get-profile", function(request, response) {
response.setHeader('Content-Type', 'application/json');
var url_parts = url.parse(request.url, true);
var api_token = url_parts.query.api_token;
if(typeof api_token === 'undefined') {
response.status(401).send(JSON.stringify({ "Status": false, "Message": "Invalid query string." }));
}
});
这是否意味着我们不能在Node.js的使用功能,如上面?
回答如下:你绝对可以在使用的NodeJS功能。虽然使用功能的最好的办法是用异步/伺机这样可以保证你的函数的代码继续之前实际上返回。
checkQueryStringExists(request) {
return new Promise(async (resolve, reject) => {
var url_parts = url.parse(request.url, true);
var api_token = url_parts.query.api_token;
if(typeof api_token === 'undefined') {
resolve(false);
}
resolve(true);
}
});
router.post("/get-profile", async function(request, response) {
response.setHeader('Content-Type', 'application/json');
try{
var result = await checkQueryStringExists(request);
if(!result) {
response.status(401).send(JSON.stringify({ "Status": false, "Message": "Invalid query string." }));
} catch (e){
console.log(e)
}
});