簡體   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