node.js - 如何使用 Node JS调用带参数的PostgreSQL函数?

标签 node.js postgresql web-services

我是 PostgreSQL 和 Node JS 的新手。我正在使用 node js 创建 web 服务。我在 PostgreSQL 中创建了函数并成功执行。现在我想要的是通过 Node JS 调用此函数,但我不知道如何在参数中发送值。我想通过 Node JS 在表中插入两个值“task_name”和“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;

Node 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);
    });

})

最佳答案

根据 documents值作为数组 | qry 后的值,尝试:

db.any('select inserttask($1, $2)', ['task_name','task_type'])

pg-promise 编辑作者。最好的方法是通过方法 func :

db.func('inserttask', ['task_name','task_type'])

关于node.js - 如何使用 Node JS调用带参数的PostgreSQL函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43732198/

相关文章:

javascript - Node.js、processing.js 和无浏览器

node.js - NodeJS REST API 模型和服务结构

javascript - 在 SQL 中创建模式的最佳方式

python - 具有类似错误 'tuple' 对象的 Django raw() 查询没有属性 'id'

PostgreSQL、WAMP、Laravel 5.5 - "php artisan migrate"抛出 "driver not found"异常

java - 未找到 jersey.api.MessageException 消息正文编写器和 MIME 媒体类型文本/xml

javascript - 如何填充 Mongoose 模型中的字段?

ruby-on-rails - 使用 Postgresql 扩展模型 ActiveRecord

wcf - Web 服务与 WCF 服务

web-services - REST Web 服务的身份验证