小编Ron*_*n I的帖子

在节点中使用psql(pg-promise)在for loops / promise.all内部承诺

您好,我是Promises的新手,他被困在如何等待for循环中的所有promise解析之后再转到下一个then()。我已经看到了两个promise.all示例,但是我不清楚如何使它们适应下面的代码。当前,它转到for循环之后的下一个then(),并在for循环完成之前进行解析。任何帮助表示赞赏!

我正在使用pg-promise(带有承诺的psql)。

原始代码:

function getTeamMembers(aTeam) {
    let promise = new Promise(function(resolve, reject) {
      db.getTeamMembers(aTeam.tid) //return sql results rows
        .then(function(rows){
          for(let i=0; i<rows.length; ++i) { //loop through each result row
            getUserByUsername(rows[i].username)
              .then(function(cfUser) { //add user from row to aTeam object                    
                aTeam.addMember(cfUser);
              })
              .catch(function(e) {
                reject(e);
              });
          }
        })
        .then(function(){
          console.log(aTeam); //confirm added properly
          resolve(aTeam); //resolve object
        })
        .catch(function(e) {
          console.log('addMemberToTeamByUsername: '+e.stack);
          reject(e);
        });
    });
    return promise;
  }
Run Code Online (Sandbox Code Playgroud)

javascript node.js psql ecmascript-6 pg-promise

3
推荐指数
1
解决办法
1732
查看次数

隐藏 D3 v4 树图中的根节点和边

对于下面的小提琴,我想隐藏根节点。感谢任何帮助,要查看代码,请查看小提琴。

我想我会做类似以下的事情,但我不确定如何/在哪里实现它:

if (d.depth > 0) {
 ...node is drawn
}
Run Code Online (Sandbox Code Playgroud)

下图: 在此输入图像描述

d3.js

3
推荐指数
1
解决办法
1052
查看次数

从 Node / Express 中的另一个路由中调用 API 端点

我的 myRoute.js 定义了一个路由 (GET),我想从另一个路由 (api.js) 调用 api 端点,但我不确定这样做的正确方法是什么。api.js 路由工作正常(图片和代码如下)。

api.js

router.get('/getGroups/:uid', function(req, res, next) {    
  let uid = req.params.uid;
  db.getAllGroups(uid).then((data) => {
    let response =[];
    for (i in data) {
      response.push(data[i].groupname);
    }
    res.status(200).send(response);
   })
   .catch(function (err) {
     return err;  
   });  
});
Run Code Online (Sandbox Code Playgroud)

按预期工作:

在此处输入图片说明

myRoute.js

我希望当用户访问 localhost:3000/USER_ID 时,路由定义从 api 获取信息。下面的伪代码(someFunction)。

router.get('/:uid', function(req, res, next) {
  let uid = req.params.uid;
  let fromApi = someFunction(`localhost:3000/getAllGroups/${uid}`); // <--!!!
  console.log(fromApi) ;  //expecting array
  res.render('./personal/index.jade', {fromApi JSON stringified});
});
Run Code Online (Sandbox Code Playgroud)

node.js express

3
推荐指数
2
解决办法
1万
查看次数

可以从节点获取数据,但不能使用postgres从命令行获取数据

我创建了一个名为alpha的表和一个名为'event'的alpha表.我可以在事件表中添加一行,并从节点中的事件表中检索所有行.但是当我在命令行中尝试时,当我选择全部时,我得到一个"空白".

命令行(没有看到任何行):

(master U:1 ?) happy psql alpha
psql (9.4.4)
Type "help" for help.

alpha=# psql \dt
          List of relations
 Schema | Name  | Type  |   Owner    
--------+-------+-------+------------
 public | event | table | pgOwner
(1 row)

alpha-# select * from event
alpha-# 
Run Code Online (Sandbox Code Playgroud)

节点代码(显示行):

let promise = require('bluebird');
let moment = require('moment');

let options = {
  // Initialization Options
  promiseLib: promise
};

let pgp = require('pg-promise')(options);
let connectionString = 'postgres://localhost:5432/alpha';
let db = pgp(connectionString);

// add query functions
function getAllEvents(req, …
Run Code Online (Sandbox Code Playgroud)

postgresql node.js

2
推荐指数
1
解决办法
55
查看次数

Node / Express &amp; Postgresql - 当没有行匹配时

您好,我是 Postgresql 的新手,我想了解在抛出错误时如何处理 0 结果。本质上,我想获取一个不存在的用户,如果不存在则返回 null,并有一个错误处理程序。以下是我正在使用的当前代码。任何关于更好的方法的提示都表示赞赏!

var options = {
  // Initialization Options
  promiseLib: promise
};
var pgp = require('pg-promise')(options);
var connectionString = 'postgres://localhost:5432/myDbName';
var db = pgp(connectionString);

function getUser(id) {         
  let user = new Promise(function(resolve, reject) {
    try {
      db.one('select * from users where loginName = $1', id).then(function(data) {
        console.log(data);
        resolve(data); 
      }).catch (function (e) {
        console.log('error: '+e);
        reject(e);
      });
    }
    catch (e) {
      console.log('error: '+e);
      reject(e);
    }
  });
  return user;
}
Run Code Online (Sandbox Code Playgroud)

控制台输出:

error: QueryResultError {
    code: queryResultErrorCode.noData
    message: "No …
Run Code Online (Sandbox Code Playgroud)

postgresql node.js pg-promise

2
推荐指数
1
解决办法
1926
查看次数

需要在正则表达式的开头添加 http:// 或 https://

http://我的正则表达式工作得很好,除了我想添加 url 必须包含or的要求https://,并且我尝试修复正则表达式会破坏它。任何帮助表示赞赏!

    let rx = new RegExp(/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-\+=&;%@\.\w_]*)#?(?:[\.\!\/\\\w]*))?)/g);
let replaced = text.replace(
        rx,
        `<a href="$1" target="_blank">$1</a>`
    ); 
Run Code Online (Sandbox Code Playgroud)

regex

2
推荐指数
1
解决办法
1294
查看次数

android图标错误 - 没有看到文件夹?

我创建了文件夹:

app_name/res/drawable-hdpi
app_name/res/drawable-mdpi
app_name/res/drawable-ldpi
Run Code Online (Sandbox Code Playgroud)

我把图标72x72放在hdpi中,48x48放在mdpi中,36x36放在ldpi中.我将png图标命名为:icon.png

我编译并运行它,图标没有改变.那么我去了AndroidManifest.xml并更改了icon参数:

<application
        android:icon="@drawable-ldpi/icon"
...
Run Code Online (Sandbox Code Playgroud)

但是我收到此错误:

错误:找不到与给定名称匹配的资源(在'icon'处,值为'@ drawable-ldpi/icon').AndroidManifest.xml中

有小费吗?

android android-layout android-icons

1
推荐指数
1
解决办法
1万
查看次数

D3.js在行动中,代码示例不起作用

我从D3.js In Action一书中复制了一个简单条形图的例子,当我尝试运行它时出错.

控制台错误:

charts.js:3 Uncaught TypeError: Cannot read property 'linear' of undefined
Run Code Online (Sandbox Code Playgroud)

代码:

var yScale = d3.scale.linear().domain([0, 390]).range([0,100]);

d3.select('svg')
  .selectAll('rect')
    .data([150,390,340,295])
  .enter()
  .append('rect')
    .attr('width', 50)
    .attr('height', function(d) { return yScale(d); })
    .attr('x', function(d, i) { return i*60; })
    .attr('y', function(d) { return 100 - yScale(d); })
    .style('fill', 'rgb(104, 167, 207)');
Run Code Online (Sandbox Code Playgroud)

如果我将yScale声明移到底部,我会收到以下错误:

charts.js:11 Uncaught TypeError: yScale is not a function
Run Code Online (Sandbox Code Playgroud)

d3.js d3v4

1
推荐指数
1
解决办法
1016
查看次数

将数组与 pg-promise 一起使用

我正在使用 pg-promise,但不明白如何运行此查询。第一个查询有效,但我想使用 pg-promise 的安全字符转义,然后我尝试第二个查询,但它不起作用。

作品:

db.any(`SELECT title FROM books WHERE id = ANY ('{${ids}}') ORDER BY id`)
Run Code Online (Sandbox Code Playgroud)

不起作用

db.any(`SELECT title FROM books WHERE id = ANY ($1) ORDER BY id`, ids)
Run Code Online (Sandbox Code Playgroud)

pg-promise

1
推荐指数
1
解决办法
1503
查看次数