我知道我的问题似乎不是很具体,但是由于我不了解,我无法描述正在发生的事情:( 因此,我用ssr(用于react)和jwt身份验证编写了小型Express应用程序。 SSR部分效果很好,但其余部分都很糟糕。....
import 'babel-polyfill';
import express from 'express';
import bodyParser from 'body-parser';
import logger from 'morgan';
import authRouter from './auth/authRouter';
const app = express();
app.use(express.static('public'));
app.use(logger('dev'));
app.use(bodyParser.json({ type: '*/*' }));
app.use(bodyParser.urlencoded({ extended: false }));
//a lot of irrelevant ssr code
authRouter(app);
app.listen(3000, function(err) {
if (err) {
console.log(err);
}
console.log('main server on port 3000');
});
这是我的主服务器文件。我的第一个问题是我没有从文件中看到任何console.logs。我的终端没有任何东西。这就是为什么我看不到我的应用程序中的请求的原因。我正在像这样用邮递员测试它:
这就是我在上面的主服务器文件中使用的authRouter:
import express from 'express';
import { signup, signin } from '../controllers/authentication';
import { jwtLogin, localLogin } from '../services/passport';
import passport from 'passport';
passport.use(jwtLogin);
passport.use(localLogin);
//if user is auth'd do not create session for him
const requireAuth = passport.authenticate('jwt', { session: false });
const requireSignin = passport.authenticate('local', { session: false });
const authRouter = function(app) {
app.get('/auth', requireAuth, function(req, res) {
res.send({ hi: 'there' });
});
app.post('/auth/signin', requireSignin, signin); // irrelevant right now
app.post('/auth/signup', signup);
};
export default authRouter;
那是我在路由器中使用的注册功能:
const signup = (req, res, next) => {
console.log('reqqqqqqq', req);
const { email, password, passwordCheck } = req.body; //code crashes here
//some code I deleted for everyones convenience
};
每个请求都使我的应用程序崩溃,因为req.body未定义。我无法记录请求,因为我看不到任何日志。我也尝试发送回请求主体的字符串化版本,但每次收到“ TypeError:将圆形结构转换为JSON”时,我都会尝试发送。 我很乐意添加您可能需要的任何信息
编辑: 我待会儿要在家里检查一下,但现在我想我的应用程序的ssr部分出了问题,因为我什至没有看到“端口3000上的主服务器”日志.....同时服务器以正确的html,js文件进行响应,并且路由工作正常,因此.....无论如何我以后都要查找
答案 0 :(得分:1)
尝试从节点使用util.inspect
:
const util = require('util');
// usage in your code
const signup = (req, res, next) => {
console.log(util.inspect(req, { showHidden: true, depth: null }));
const { email, password, passwordCheck } = req.body;
...
};
答案 1 :(得分:0)
我解决了.....意外的问题出在我的package.json文件中。 我的启动脚本如下所示:
"scripts": {
"start": "nodemon build/server.bundle.js | nodemon build/api.bundle.js",
...
}
因此,我遇到了这些奇怪的错误。只有api.bundle.js文件运行正常…… 无论如何,谢谢您的帮助;)