簡體   English   中英

使用 Node.JS 和 MySQL 插入數據庫記錄時出錯

[英]Error in inserting DB record using Node.JS and MySQL

我正在使用 MySQL 和 NodeJS express 對 RESTFUL API 執行 CRUD 操作。 將記錄插入數據庫時出錯,我不知道為什么會出現問題,因為我從 SQL 復制了插入查詢,它工作正常。 我寫了一個這樣的查詢var sql = 'INSERT INTO tblltest values(null, "+req.body.Name+")'; . 我已經使用 PostMan 對其進行了測試,而不是添加名稱,而是將+req.body.Name+參數添加到數據庫中。 請幫我解決這個問題。

這是我的代碼行:

var express = require('express');
var mysql = require('mysql');
var app = express();
const bodyparser = require('body-parser');

var connection = mysql.createConnection({
    
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'sampledb'
    
});
app.post('/' , function(req , resp) {
    var bg = req.body;
    
    var sql = 'INSERT INTO `tblltest` values(null, "+req.body.Name+")';

    connection.query(sql , function(error , rows , fields){
        if(!error){
            
            console.log('Successful added!! \n');
            resp.json(rows);
            
        }else{
            console.log('Error in adding');
        }
        
    });
})

app.listen(1337);

我認為您在 sql 變量中缺少單引號,而不是

var sql = 'INSERT INTO `tblltest` values(null, "+req.body.Name+")';

用。。。來代替:

var sql = 'INSERT INTO `tblltest` values(null, "' + req.body.Name + '")';

編輯:從您的應用程序配置的外觀來看,您的應用程序似乎沒有使用 bodyParser,請嘗試將其添加到您的應用程序(在 app.post(...) 之前),以便它能夠使用正文解析器獲取信息來自 POST 和/或 URL 參數:

app.use(bodyparser.urlencoded({ extended: true }));
app.use(bodyparser.json()); 

另外,使用console.log查看你的身體object是否有任何數據,嘗試在你的sql查詢之前添加它:

console.log(req.body);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM