Я создаю конечные точки REST API в Node.js как отдельный пользовательский модуль. В моем модуле, использующем экспресс-маршрутизатор, я создал все API.
Затем я включил этот пользовательский модуль в приложение Node.js.
Пока я вызываю get с параметрами, в этих маршрутизаторах я могу видеть значения этих параметров.
Но при выполнении почтового запроса я не могу получить тело POST в формате JSON.
Пользовательский модуль
1. index.js: -
module.exports = function(app){
var express = require('express');
var router = express.Router();
var user = require('./lib/user')(router);
app.use("/user", user);
};
2. Библиотека/user.js: -
module.exports = function(router) {
router.post('/create', function(req, res) {
console.log(req.body);
};
return router;
};
Приложение Nodejs: -
Файл server.js имеет код ниже
var express = require('express');
var path = require('path');
var http = require('http');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var methodOverride = require('method-override');
var multer = require('multer');
var app = express();
require('custommodule')(app);
app.use(express.static(path.join(__dirname, '/public')));
app.set('views', path.join(__dirname, 'public/views'));
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.use(logger('dev'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(methodOverride());
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
app.post('/test/create', function(req, res) {
console.log(req.body);
};
Затем, когда я делаю POST-запрос к http://localhost:3000/user/create с телом JSON , внутри журналов user.js отображается неопределенное значение для req.body. Но если я сделаю ниже вызов POST, тогда будет отображаться req.body.
http://localhost:3000/test/create
Как я могу получить req.body внутри lib\user.js?