我知道我的问题可能不太具体,但是我描述发生的事情时有困难,因为我不理解它 :(
所以我写了一个小的express应用程序,带有ssr(用于react)和jwt身份验证。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。我的终端里什么也没有。这就是我无法看到我的应用程序中的请求是什么样子的原因。我使用postman进行测试,如下所示: 这就是我在主服务器文件中使用的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未定义。我无法记录req,因为我看不到任何日志。我还尝试发送请求正文的字符串版本,但每次都会收到“TypeError:将循环结构转换为JSON”。如果您需要任何信息,我很乐意添加。
编辑:我稍后会在家里检查,但现在我认为我的应用程序的ssr部分有问题,因为我甚至没有看到“主服务器在端口3000上”的日志.....同时服务器响应正确的html、js文件和路由工作良好,所以......无论如何,我稍后会查找它。