我是PostgreSQL和Node JS的新手。我正在使用节点JS创建Web服务。我已经在PostgreSQL中创建了函数及其成功执行。现在,我想要的是我通过节点JS称呼此函数,但我没有得到如何在参数中发送值。我想通过节点JS将两个值插入表中的两个值" task_name"one_answers" task_type"。我该如何实现?
postgresql函数 -
CREATE FUNCTION inserttask(task_name text, task_type text)
RETURNS void AS
$BODY$
BEGIN
INSERT INTO tasklist(taskname, tasktype)
VALUES(task_name, task_type);
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
节点JS代码 -
app.param(['task_name', 'task_type'], function (req, res, next, value) {
console.log('CALLED ONLY ONCE with', value);
next();
});
app.get('/inserttask/:task_name/:task_type', function (req, res, next) {
console.log('vivek');
// var task_name=req.query.task_name;
// var task_type=req.query.task_type;
var task_name='vivek';
var tast_type='singh';
db.any('select inserttask(task_name,task_type)')
//db.any('select getFriends()')
.then(function (data) {
res.status(200)
.json({
status: 'success',
message: 'Insert Task',
data: data
});
})
.catch(function (err) {
return next(err);
});
})
根据文档值为数组|QRY之后的值,尝试:
db.any('select inserttask($1, $2)', ['task_name','task_type'])
PG-Promise作者编辑。最好的方法是通过方法func:
db.func('inserttask', ['task_name','task_type'])