POST 方法 API Express Node.JS 不起作用,SyntaxError: Unexpected token ' in JSON at JSON.parse (<anonymous>)

问题描述 投票:0回答:1

我正在尝试使这个帖子 API 工作,它是一个将一些数据发布到我的数据库中的表中的 API,但每次我在邮递员上尝试它时,它都会给我这种错误:

SyntaxError: Unexpected token ' in JSON at position 68
    at JSON.parse (<anonymous>)
    at parse (C:\javascript-projects\living-main\API\node_modules\express\node_modules\body-parser\lib\types\json.js:89:19)
    at C:\javascript-projects\living-main\API\node_modules\express\node_modules\body-parser\lib\read.js:128:18
    at AsyncResource.runInAsyncScope (node:async_hooks:203:9)
    at invokeCallback (C:\javascript-projects\living-main\API\node_modules\express\node_modules\raw-body\index.js:231:16)
    at done (C:\javascript-projects\living-main\API\node_modules\express\node_modules\raw-body\index.js:220:7)
    at IncomingMessage.onEnd (C:\javascript-projects\living-main\API\node_modules\express\node_modules\raw-body\index.js:280:7)
    at IncomingMessage.emit (node:events:525:35)
    at endReadableNT (node:internal/streams/readable:1358:12)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)

这是我在模型文件夹中插入查询的函数代码:

const dbpool = require('../config/database')

const createNewRecruitment = () => {
  const SQLQuery = `INSERT INTO tb_recruitment_teams () 
                    VALUES (
                      '${body.identifier_recruitment_team}',
                      '${body.name_team}',
                      '${body.post_team}',
                      '${body.domicile_team}',
                      '${body.job_description}',
                      '${body.experience}',
                      '${body.certificate}'
                      )`;
  return dbpool.execute(SQLQuery);
}
module.exports = {
  createNewRecruitment,
}

我在recruitment.controllers.js中的POST代码

const ProjectModel = require('../models/tb_recruitment_team')

const createNewRecruitment = async (req, res) => {
    const {body} = req;
    try{
        await ProjectModel.createNewRecruitment(body);
        res.json({
            message: 'Create New Recruitment Success',
            data: body
        })
    }catch (error) {
        res.status(500).json({
            message: 'Server Error',
            ServerMessage: error,
        })
    }    
}

module.exports = {
   createNewRecruitment,
}

我在recruitment.js中的路线

const express = require('express');
const RecruitmentControllers = require('../controllers/recruitment.controllers');

const router = express.Router();

//CREATE - POST
router.post('/', RecruitmentControllers.createNewRecruitment);

module.exports = router;

和我的app.js

const express = require('express');
const app = express();

const recruitmentRoute = require('./routes/recruitmen.js');

const middlewareLogRequest = require('./middleware/log.js')

app.use(middlewareLogRequest);

app.use(express.json({ strict: false }))

app.use('/recuitments', recruitmentRoute);

module.exports = app;

这是我在 Postman 中测试 POST 时使用的正文 JSON:

{
            "identifier_recruitment_team": '34',
            "name_team": 'NTDD',
            "post_team": 'Balikpapan',
            "domicile_team": 'Job Description Contributor',
            "job_description": 'ERTBB',
            "experience": 'ERTBB',
            "certificate": 'ERTBB'
}

我做错了什么吗?我一直在找,但还是没找到。

POST方法保存数据工作并会给出正确的

res.json

javascript node.js json express post
1个回答
0
投票

我认为你的问题是你的JSON正文无效,JSON不接受单引号

' '
,请使用双引号
" "
代替你的值

试试这个:

{
            "identifier_recruitment_team": "34",
            "name_team": "NTDD",
            "post_team": "Balikpapan",
            "domicile_team": "Job Description Contributor",
            "job_description": "ERTBB",
            "experience": "ERTBB",
            "certificate": "ERTBB"
}
© www.soinside.com 2019 - 2024. All rights reserved.