私はエクスプレスでより新しい、エクスプレスアプリを展開しています。私はすべてのAPIが呼び出される前に関数checkApiKeyを呼びたいと思います。ここに私のAPIのルートエクスプレスルートネストされたコールバック
var express = require('express');
var router = express.Router();
var fn = require('../webservices');
router.post('/api/signup',fn.checkApiKey, fn.signup);
module.exports = router;
、ここで私のwebservice.js
var fs = require('fs'),
path = require('path');
var db = require('./conn')
var models = require('./models')
function signup(req, res, next){
var postData = req.body;
console.log('signup called', postData);
checkApiKey(req, res, function(err, done){
models.user.save(postData, function(err, saved) {
console.log('err', err);
if(err) return res.status(200).json({ status: "fail", message: 'Server Error' });
return res.status(200).json({ status: "success", data:saved, message: 'Success' });
})
})
}
function checkApiKey(req, res, next){
console.log('checkApiKey called');
if(req.body.apiKey!='123') return res.status(200).json({ status: "fail", message: 'ApiKey not Match' });
return next(req, res);
}
module.exports = {
signup, checkApiKey
}
はここにあるcheckApiKeyは私が
を使用するときにも、成功しサインアップすると呼ばれるが、fn.checkApiKeyを除去しながら、エラーステータス500と呼ばれていないサインアップrouter.post('/api/signup',function (req, res, next){
console.log('checkApiKey called');
if(req.body.apiKey!='123') return res.status(200).json({ status: "fail", message: 'ApiKey not Match' });
return fn.signup(req, res);
});
これは動作しますが、私は各API毎にコードを書く必要があります 誰でも正しい方法を見つけるのを助けることができます