node.js - 在 Nodejs-Express API 中 Sequelize body-parser 错误

标签 node.js postgresql sequelize.js

我有 Nodejs-express-postgres API,它使用 sequalize ORM,它只需添加捐助者的详细信息并获取。添加工作正常,但在获取时出现以下错误

SyntaxError: Unexpected token   in JSO:10)N at position 0                       s\api-server-sequalize\node_modules\body-parser\l
at JSON.parse (<anonymous>)       
at createStrictSyntaxError (E:\Noderver-sequalize\node_modules\body-parser\lib\readeProjects\red_lines\api-server-sequalize\node_modules\body-parser\lib\types\\red_lines\api-server-sequalize\node_modules\raw-json.js:158:10)
at parse (E:\NodeProjects\red_line\api-server-sequalize\node_modules\raw-body\indexs\api-server-sequalize\node_modules\body-parser\lib\types\json.js:83:15)    rojects\red_lines\api-server-sequalize\node_modul
at E:\NodeProjects\red_lines\api-smingMessage.emit (node:events:388:22)erver-sequalize\node_modules\body-parsreams/readable:1305:12)er\lib\read.js:121:18                 :internal/process/task_queues:80:21)
at invokeCallback (E:\NodeProjects\red_lines\api-server-sequalize\node_modules\raw-body\index.js:224:16)      
at done (E:\NodeProjects\red_lines\api-server-sequalize\node_modules\raw-body\index.js:213:7)
at IncomingMessage.onEnd (E:\NodeProjects\red_lines\api-server-sequalize\node_modules\raw-body\index.js:273:7)    at IncomingMessage.emit (node:events:388:22)
我的路线代码如下所示
const express = require("express");
const router = new express.Router();
const Donor = require("../models/donorModel");

router.get('/', (req, res) => {
  res.status(201).send("Working");
});

router.get('/donor',  async(req, res) => {
    Donor.findAll().then((model)=>{
    
      res.status(201).send(model)
  }).catch((e)=>{
    console.log('got some error')
    res.status(401).send(e)
  })
})
router.post("/donor", (req, res) => {
  const { dname, dlocation,dphone , demail, ddob ,dbgroup } = req.body;
  
  Donor.create({
    dname: dname,
    ddob: ddob,
    demail: demail,
    dlocation: dlocation,
    dphone: dphone,
    dbgroup: dbgroup,
  }).then((model) => {
      console.log("Saved");
      res.status(201).send(model);
    })
    .catch((error) => {
      res.status(201).send(error);
    });
});


module.exports = router;
和 index.js 文件如下
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
const db = require("./app/config/database");
require("dotenv").config();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(require("./app/routes/routes"));
//Test DB
db.authenticate()
  .then(() => console.log("Database connected"))
  .catch(e => console.log("Error:" + e))
// routes

app.listen(process.env.NODE_PORT || 3000, () =>
  console.log(`server running on PORT  ${process.env.NODE_PORT} !`)
);
希望有人能解决

最佳答案

在您的 route ,将数据转换为 json,然后再将其作为响应发送。
例如,在“/donor” route ,您可以这样做:res.status(201).json(model);

关于node.js - 在 Nodejs-Express API 中 Sequelize body-parser 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65722644/

相关文章:

mysql - 使用 Express 中 Sequelize 中的创建方法检查表中存在的 ID

sequelize.js - 在 sequelize 上执行 sql 查询

mysql - 引导 Sequelize 模式的 "correct"方法是什么?

javascript - 排序和处理推文的最佳方式 - Twitter API

oracle - PostgreSQL 与 Oracle 默认事务管理

javascript - 咕噜声 : grunt-hub isn't watching all projects

postgresql - 如何在 Slick 中调用存储过程并获取返回值(使用 Scala)

java - 使用Java查找Postgresql安装位置

node.js - Nodejs 命令行应用程序 : unexpected token `else'

node.js - 蒙戈错误: E11000 duplicate key error index