如何解决使用expressJS将数据插入MongoDB
我正在尝试将一些数据发布到Mongo中的集合中。很基本。我对mongo和表达都是陌生的,遇到了一些问题。到目前为止,这是我的代码:
<form action="/post" method="post">
<label for="first_name">First Name</label>
<input type="text" id="first_name" name="first_name">
<button type="submit">Submit</button>
</form>
const express = require('express');
const expressApp = express();
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/agile-app-db';
const dbName = 'agile-app-db';
//Post data
expressApp.post('/post',function (request,response) {
let member = {
first_name: request.body.first_name
};
MongoClient.connect(url,function (error,db) {
if (error) throw error;
let databaseobject = db.db(dbName);
databaseobject.collection('Members').insertOne(member,result) {
if (error) throw error;
console.log("Member inserted");
db.close();
});
});
response.redirect('/agileApp');
});
我遇到以下错误:“ TypeError:无法读取未定义的属性'first_name'”
解决方法
您需要将中间件添加到解析查询字符串的快速应用程序中。
尝试添加
expressApp.use(express.urlencoded({ extended: false }))
在任何路线之前。
尝试使用主体解析器中间件
const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。