gpt4 book ai didi

node.js - 数据未插入 mongodb

转载 作者:太空宇宙 更新时间:2023-11-04 01:55:24 25 4
gpt4 key购买 nike

我是nodejs和mongodb的初学者。我使用 mongoose ORM 和模型将数据插入到集合中,但不插入。验证工作正常,但填充完整数据后未插入数据。我没有在数据库中手动创建集合。我应该在 mongodb 中手动创建集合还是在插入文档时自动创建。

产品 Controller

var mongoose = require('mongoose');
var db = require('../config/db_config');
var Product = require('../models/product');
//var Product = mongoose.model('Products');
var productController = {};

productController.add = function(req, res) {
var params = req.body;

if(!params) {
res.status(400).send({message: "Data can not be empty"});
}

var productData = new Product({
product_name : params.product_name,
price : params.price,
category : params.category
});

console.log(productData);

productData.save(function(err, product) {
if (err){
res.status(400).send({message:'Unable to save data! ' + err});
}else{
res.status(200).send({message:'Data has been saved! ' + product });
}
});
};

module.exports = productController;

模型代码在这里

var mongoose = require('mongoose');
var db = require('../config/db_config');
var Schema = mongoose.Schema;

var productSchema = new Schema({

product_name: { type: String, required: 'Product name cannot be left blank.' },

price: { type: String, required: 'Product price cannot be left blank.'},

category: { type: String , required: 'Product category cannot be left blank'},

updated_at : {type: Date, default: Date.now}

});

module.exports = mongoose.model('Products', productSchema);

路由文件代码在这里:

var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var Product = require('../models/product.js');
var productsController = require('../controllers/productsController');

router.post('/add',productsController.add);

module.exports = router;

数据库配置文件

var mongoose = require('mongoose');

mongoose.Promise = global.Promise;

var db = mongoose.createConnection('mongodb://localhost:27017/nodeweb', function(err,db){
if(err){
throw err;
console.log(err);
} else {
console.log('Successfully connected to database!');
}
});
module.exports = db;

我有插入 Controller 、模型和路线文件代码。

最佳答案

请更正您的方法 -

Controller 功能

exports.add = function(req, res) {
var new_product = new Products(req.body);
// you have define Products not Product
console.log(new_product);
new_product.save(function(err, product) {
console.log('add data');
if (err){
res.send(err);
}else{
res.json(product);
}
});

};

对于 Node js 的良好实践 - 我认为你可以从 express-app-generator 开始

这有助于通过通用响应和带有记录器的内置快速中间件来进行简单的路由。

关于node.js - 数据未插入 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48185034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com