【问题标题】:nodejs lambda epipe errornodejs lambda epipe错误
【发布时间】:2017-08-10 00:37:09
【问题描述】:

我收到此错误,但找不到任何原因。

我已在 amazon aws 上部署了此代码。是因为代码的异步执行吗? Stackoverflow 说我要添加更多细节,但我没有更多。

以下是我的代码快照。

    "Error: write EPIPE
     at Object.exports._errnoException (util.js:870:11)
     at exports._exceptionWithHostPort (util.js:893:20)
   at WriteWrap.afterWrite (net.js:763:14)"

    module.exports.register = function(client, body, s, rclient, redis, callback){
    console.log("inside registration module function");
    console.log(body);
    console.log("mobile no", body.mobile_no);

    client.connectAsync()
.then(()=>
 {


return client.queryAsync('select count(*) from users where mobile_no=$1',[body.mobile_no]);})
.then(res=>{

console.log("connection successful");

if(res.rows[0].count==0)
{
    return client.queryAsync('insert into users(mobile_no, email, city, uname, password) values ($1, $2, $3, $4, $5)', [body.mobile_no, body.email, body.city, body.uname, body.password])
    .then(()=>{
        return client.queryAsync('select uid from users where mobile_no=$1',[body.mobile_no]);
    })
    .then(res=>{
        var uid = JSON.stringify(res);
        uid = JSON.parse(uid).rows[0].uid;

        console.log("uid: ", uid);

        console.log(uid);
        console.log(s);
        rclient.set(s,uid,redis.print);

        const response = {

            statusCode:201,
            body: JSON.stringify({
                sid: s,
                message: 'user registered',
            }),
        };

        console.log('success');
        return Promise.promisify(response);

    })
     .then(res=>{
        callback(null, res);
    })

}
else
{
    console.log("It is already registered mobile no");

              const response = {

            statusCode:412,
            body: JSON.stringify({
                sid: '',
                message: 'error: mobile no already registered',
            }),
        };

        Promise.promisify(response);

   }
 })
     .then(res=>{
     callback(null, res);
      })
    .then(()=>{

    client.end();
    rclient.quit();

  })

  .catch(err=>{
   console.log(err.stack);
    console.log("error occured");
   })

}

【问题讨论】:

  • 该错误是在哪里产生的?
  • 管道到关闭的流时引发 EPIPE 错误
  • 是你的节点版本
  • 我的节点版本是v4.3.2。 api有时会正常执行。但是,有时它会给出上述错误

标签: javascript node.js amazon-web-services lambda


【解决方案1】:

node version is v4.3.2 已知该错误,下载最新的 .使用 LTS version(6.10.0) 或最新版本 7.7.3 不再维护该版本。这些版本很稳定,应该可以工作。

【讨论】:

  • amazon 目前不支持 nodejs version6 版本。所以,这不可能是一个解决方案
  • 亚马逊现在支持最新的吗
猜你喜欢
  • 2020-10-06
  • 1970-01-01
  • 1970-01-01
  • 2014-12-26
  • 2016-04-25
  • 1970-01-01
  • 2019-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多