我正在尝试使这个帖子 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
。
我认为你的问题是你的JSON正文无效,JSON不接受单引号
' '
,请使用双引号" "
代替你的值
试试这个:
{
"identifier_recruitment_team": "34",
"name_team": "NTDD",
"post_team": "Balikpapan",
"domicile_team": "Job Description Contributor",
"job_description": "ERTBB",
"experience": "ERTBB",
"certificate": "ERTBB"
}