nodejs+express的mongoose连接数据库表名自动加s
2018-01-04 20:38
721 查看
数据库自动加s进而导致访问不到数据库
项目文件结构如下
topic.js文件中,代码如下
在index.js文件中,代码如下
在mongoDB中生成的表名为topics,自动加了s
意外发现虽然看起来连到了数据库(网页未报错),但是就是不能显示读到的数据。
最后发现是topic.js文件中使用mongoose.model()的参数不对
查询mongoose 的api如下
mongoose API collection名称应该为第三个参数,若为缺省,会自动根据参数name的值以复数形式生成collection
所以应该改成
修改后的数据表名就正确了
项目文件结构如下
modules --topic.js
topic.js文件中,代码如下
const mongoose=require("mongoose"); const Schema=mongoose.Schema; const topicSchema=new Schema({ title: { type: String }, content: { type: String }, author_id: { type: 'ObjectId' }, }); const Topic = mongoose.model('Topic', topicSchema); export default Topic
在index.js文件中,代码如下
const express = require('express'); const router = express.Router(); const mongoose=require('mongoose'); const models=require('../models/topic'); require('express-mongoose'); const registeredUser=models.registeredUser; mongoose.connect('mongodb://localhost:27017/myappdb'); router.get('/',function(req,res) { res.send(registeredUser.find()); }) module.exports = router;
在mongoDB中生成的表名为topics,自动加了s
意外发现虽然看起来连到了数据库(网页未报错),但是就是不能显示读到的数据。
最后发现是topic.js文件中使用mongoose.model()的参数不对
查询mongoose 的api如下
mongoose API collection名称应该为第三个参数,若为缺省,会自动根据参数name的值以复数形式生成collection
所以应该改成
const Topic = mongoose.model('Topic', topicSchema, 'Topic'); export default Topic
修改后的数据表名就正确了
相关文章推荐
- Node.js Mongoose数据库连接失败 提示:Authentication failed
- Visual Studio Code (vscode)创建Node.js+Express+handlebars项目--连接数据库ORM模块sequelize
- node.js开发之express4.0使用mongoose连接mongodb
- nodejs+express+ejs+mongoose实例
- NodeJS+Express+mongoose+Jade+bootstrap+jquery+inspector(调试工具)开发网站demo总结
- node连接数据库(express+mysql)
- Node.js 连接 MySQL 并进行数据库操作
- node-webkit中js连接sqlite3文件型数据库
- MongDB系列(一):使用node.js连接数据库
- node.js+express连接mongodb数据库
- Node.js 连接 postgreSQL数据库
- 4000 Node.js Express连接mysql完整的登陆注册系统(windows)
- Node.js连接数据库
- Node.js 入门:Express + Mongoose 基础使用
- node.js项目中基于mysql利用sequelize-auto对照数据库自动生成相应的models
- Nodejs Express 连接Mongodb
- Node.js 连接 MySQL 并进行数据库操作
- Node.js连接数据库总结
- 浅析node连接数据库(express+mysql)
- Node.js Express连接mysql完整的登陆注册系统(windows)