![](/img/trans.png)
[英]How to store session for Node.js Express with MongoDB in ReactJS + Redux?
[英]Why isn't Node.js Express with MongoDB responding to fetch API calls (ReactJS and Redux)?
使用ReactJS,Redux,Webpack,Node.js和Express与MongoDB,我遵循教程https://github.com/vasansr/mern-es6并尝试将其集成到我的项目中。 首先,我正在尝试向我创建的服务器发出POST请求。 并且它获得成功的响应并且没有记录错误。 但是在服务器POST API中,它没有记录console.log('Req body', req.body);
,并在终端我检查是否已使用mongo -> show dbs
创建数据库mongo -> show dbs
但它是空的。
可能有什么东西拦截了服务器的请求? 可能是什么问题?
这个...
app.use('/', function (req, res) {
res.sendFile(path.resolve('client/index.html'));
});
来之前:
app.post('/api/users/', function(req, res) {
//...
});
由于它是app.use
, POST /api/users
仍会app.use
该中间件, res.sendFile
结束请求/响应。 您可能会看到您的帖子正在返回客户端HTML。
尝试将客户端HTML端点移动到中间件的末尾 ,就在错误处理程序之前(如果有的话)。 这样,只有在您的API端点都不匹配时才会使用它。 或者,如果您只想让GET /
返回HTML,请更改use
以get
:
app.use(webpackDevMiddleware(compiler, {noInfo: true, publicPath: config.output.publicPath}));
app.use(webpackHotMiddleware(compiler));
app.use(express.static('dist')); //where bundle.js is
app.use(bodyParser.json());
app.post('/api/users/', function(req, res) {
console.log('Req body', req.body);
var newUser = req.body;
db.collection('users').insertOne(newUser, function(err, result) {
if(err) console.log(err);
var newId = result.insertedId;
db.collection('users').find({_id: newId}).next(function(err, doc) {
if(err) console.log(err);
res.json(doc);
});
});
});
app.get('/', function (req, res) {
res.sendFile(path.resolve('client/index.html'));
});
app.post('/api/users/', function(req, res) {
console.log('Req body', req.body);
var newUser = req.body;
db.collection('users').insertOne(newUser, function(err, result) {
if(err) console.log(err);
var newId = result.insertedId;
db.collection('users').find({_id: newId}).next(function(err, doc) {
if(err) console.log(err);
res.json(doc);
});
});
});
对于if(err) console.log(err);
我对这段代码有一些小的评论if(err) console.log(err);
我认为你应该改为if(err) return console.log(err);
。
对于error
情况,我认为你需要return
,否则下面的部分将被执行,并将报告一些错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.