【发布时间】:2020-07-19 00:58:42
【问题描述】:
编辑:这是我收到的错误:
C:\Users\przyb\Desktop\lister\puupy\server.js:33
if (err) throw err;
^
error: missing FROM-clause entry for table "body"
at Parser.parseErrorMessage (C:\Users\przyb\Desktop\lister\puupy\node_modules\pg-protocol\dist\parser.js:241:15)
at Parser.handlePacket (C:\Users\przyb\Desktop\lister\puupy\node_modules\pg-protocol\dist\parser.js:89:29)
at Parser.parse (C:\Users\przyb\Desktop\lister\puupy\node_modules\pg-protocol\dist\parser.js:41:38)
at Socket.stream.on (C:\Users\przyb\Desktop\lister\puupy\node_modules\pg-protocol\dist\index.js:8:42)
at Socket.emit (events.js:189:13)
at addChunk (_stream_readable.js:284:12)
at readableAddChunk (_stream_readable.js:265:11)
at Socket.Readable.push (_stream_readable.js:220:10)
at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! puupy@1.0.0 start: `node server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the puupy@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\przyb\AppData\Roaming\npm-cache\_logs\2020-07-19T01_30_59_800Z-debug.log
我正在尝试使用 HTML 表单和服务器端节点将数据插入到我的 postgres 数据库中的表中。这是表格:
<form action="/" method="POST">
<input id="Name" type="text" max="100" value="Doggy" name="name">
<input id="query" type="submit" value="Submit">
连接数据库的代码:
const Pool = require("pg").Pool;
const pool = new Pool({
user:"postgres",
host:"localhost",
database:"puppy",
password:"Bolek_3003",
port:5432
});
这就是我尝试实际插入数据的方式:
var bodyParser = require("body-parser");
var urlencodedParser = bodyParser.urlencoded({extended: false});
app.post('/', urlencodedParser, function(req,res,next){
pool.query("INSERT INTO Users VALUES(null, req.body.name)",(err,res)=>{
if (err) throw err;
console.log(err,res)
});
pool.end()
});
我不知道如何将这些数据实际接受到数据库中,提前致谢。
【问题讨论】:
-
你有什么错误吗?
-
我收到了错误
error: missing FROM-clause entry for table "body",但我不知道这是什么意思 -
试试这个看看它是否有效 var name= req.body.name ,const query = {text: 'INSERT INTO Users(column1, column2) VALUES($1, $2)', values: [null ,
${name}]} pool.query(query,(err,res)=>{...//}) 名称部分在反引号之间 -
我试过那个方法,我收到了这个错误:
error: bind message supplies 2 parameters, but prepared statement "" requires 1。 @Sven.hig -
我已经发布了一个答案,看看它是否适合你
标签: javascript html node.js postgresql forms