繁体   English   中英

获取 TypeError:使用 API 测试用户添加时,用户不是构造函数

[英]Getting TypeError: User is not a constructor when testing user add with API

我正在尝试使我的后端与 MongoDB ATLAS 一起工作。 我正在使用 express、mongoose 和 node.js 进行测试,当我尝试测试我的 API 路由时(在这种情况下是添加用户)

我的代码如下:

用户.js

 const router = require('express').Router(); const { Router } = require('express'); let User = require('../models/user.model'); router.route('/').get((req, res) => { User.find().then(users => res.json(users)).catch(err => res.status(400).json('Error: ' + err)); }); router.route('/add').post((req, res) => { const username = req.body.username; const newUser = new User({username}); newUser.save().then(() => res.json('User added.')).catch(err => res.status(400):json('Error; ' + err)); }). module.exports = router

user.model.js

 const mongoose = require('mongoose'); const Schema = mongoose.Schema; const userSchema = new Schema({ username: { type: String, required: true, unique: true, trim: true, minlength: 3 }, }, { timestamps: true, }); const User = mongoose.model('User', userSchema); module.exports = User;

服务器.js

 const express = require('express'); const cors = require('cors'); const mongoose = require('mongoose'); require('dotenv').config(); const app = express(); const port = process.env.PORT || 5000; app.use(cors()); app.use(express.json()); const uri = process.env.ATLAS_URI; mongoose.connect(uri, { useNewUrlParser: true, useCreateIndex: true } ); const connection = mongoose.connection; connection.once('open', () => { console.log("MongoDB database connection established successfully"); }) const exercisesRouter = require('./routes/exercises'); const usersRouter = require('./routes/users'); app.use('/exercises', exercisesRouter); app.use('/users', usersRouter); app.listen(port, () => { console.log(`Server is running on port: ${port}`); });

当我通过 POST 使用 postman 对此进行测试时,我收到以下错误:我收到以下错误:TypeError:用户不是构造函数

该帖子通过端口 5000 发送到 http,原始 json 正文为“用户名”:“blahblahblah”

你能帮忙吗?

我不确定发生了什么,但今天我剪切并粘贴了所有代码,API 开始正常工作。 现在我可以毫无问题地添加用户。

可能是一个小故障,但目前不确定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM