我正在构建一个非常简单的工具,该工具会将表单的内容发布到MongoDB,然后再构建一个GET请求以将其撤回。它起初是按照教程进行的,当我开始构建功能更强大的前端时,它就已经消失了,但是我无法获得后端功能的这一方面。
下面是我的代码,您可以清楚地看到猫鼬被定义为变量。
var express = require('express');
var app = express();
app.get('/', function(req, res) {
res.sendFile(__dirname + '/index.html');});
app.use(express.static(__dirname + '/'));
var port = 3000;
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
var mongoose = require('mongoose');
global.Promise = mongoose.Promise
console.log(console.log(mongoose.connection.readyState));
mongoose.connect("mongodb://localhost:27017/formnote");
var nameSchema = new mongoose.Schema({
srNumber: String,
summary: String,
notePad: String,
});
var Notes = mongoose.model("Notes", nameSchema);
app.get("/", (req, res) => {
res.sendFile(__dirname + "/index.html");
});
app.post("/addnote", (req, res) => {
var myData = new Notes(req.body);
myData.save()
.then(item => {
res.send("Notes saved to database");
})
.catch(err => {
res.status(400).send("Unable to save to database");
});
});
app.listen(port, () => {
console.log("Server listening on port " + port);
});
非常感谢您的帮助。
答案 0 :(得分:0)
只是在黑暗中开枪。但是在使用猫鼬全球承诺时会遇到问题 在新的猫鼬版本中,您用来连接到数据库的实现已过时,并已被该实现取代
所以不是这些行来连接到数据库,
global.Promise = mongoose.Promise
console.log(console.log(mongoose.connection.readyState));
mongoose.connect("mongodb://localhost:27017/formnote");
使用它并尝试
mongoose.connect('mongodb://localhost:27017/formnote',{useNewUrlParser:true})
.then(function(){
console.log('mongoDB connected');
})
.catch(function(){
console.log('Error :');
})
答案 1 :(得分:0)
我对代码进行了一些重组,以便在配置API本身时可以进行更多的组织,并且在此过程中,我的要求也从var更改为const。这似乎已经解决了这个问题