小编Man*_*ngh的帖子

postgres从函数返回json

我知道我可以使用row_to_json来返回json输出

例如,如果我的查询是:

select * from sample;
Run Code Online (Sandbox Code Playgroud)

我可以按如下方式重写它以返回json输出:

select row_to_json(sample) from sample;
Run Code Online (Sandbox Code Playgroud)

但我想要实现的一件事是功能中的相同功能.

举个例子,这里是函数返回表:

CREATE FUNCTION find_val(val text) 
RETURNS SETOF sample AS
$$
BEGIN
RETURN QUERY
SELECT * FROM sample where $1 = ANY(col4);
END;
$$
LANGUAGE 'plpgsql';
Run Code Online (Sandbox Code Playgroud)

现在我想从函数返回JSON输出而不是行.我怎样才能做到这一点 ?

这是我到目前为止所尝试的:

native=> CREATE FUNCTION find_val(val text) 
RETURNS SETOF sample AS
$$
BEGIN
RETURN QUERY
SELECT row_to_json(sample) FROM sample where $1 = ANY(col4) ; 
END;
$$
LANGUAGE 'plpgsql';
CREATE FUNCTION
native=> select find_val('yo');
ERROR:  structure of query does not match function result …
Run Code Online (Sandbox Code Playgroud)

sql postgresql json function

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

用于从下拉列表中选择多个元素的xpath

我试图从HTML页面中提取一些信息.考虑下面的下拉选择列表:

 <select name="ctl00$MainContent$ddlColor" onchange="chageColor(this);setTimeout('__doPostBack(\'ctl00$MainContent$ddlColor\',\'\')', 0)" id="ctl00_MainContent_ddlColor" class="input" style="width:175px;">
        <option selected="selected" value="">Color</option>
        <option value="00114743-03|large|0|03">CHARCOAL</option>
        <option value="00114743-04|large|2|04">BLACK</option>

    </select>
Run Code Online (Sandbox Code Playgroud)

它有3个值,"Color","CHARCOAL"和"BLACK".

现在,如果我查看源代码并使用谷歌浏览器复制"CHARCOAL"的XPATH,我会得到

//*[@id="ctl00_MainContent_ddlColor"]/option[2]
Run Code Online (Sandbox Code Playgroud)

但是,我想将信息提取为"CHARCOAL"和"BLACK".我希望将其应用于多个页面,其中下拉列表可能包含更多或更少数量的元素.但是,我总是想跳过第一个元素,它将是"Color".这该怎么做 ?

xpath import.io

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

Node.js:AWS SES sendRawEmail:邮件未发送到密件抄送地址

我正在使用mailcomposersendRawEmailAWS开发工具包的方法发送带有附件的邮件。我可以使用tocc字段发送电子邮件,但是当我在中添加地址时bcc,邮件不会送达。虽然没有失败。我可能会缺少文档中未提及的任何额外配置吗?

amazon-web-services node.js

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

sails.js是否可以从应用程序中设置process.env变量?

我正在尝试使用npm模块fb来使用facebook api.配置文件位于模块中,这里是相同的快照

var config = { };

// should end in /
config.rootUrl  = process.env.ROOT_URL                  || 'http://localhost:3000/';


config.facebook = {
    appId:          process.env.FACEBOOK_APPID          || '130243393813697',
    appSecret:      process.env.FACEBOOK_APPSECRET      || 'c82696768ae4ad8b63db874cb64eb558',
    appNamespace:   process.env.FACEBOOK_APPNAMESPACE   || 'nodescrumptious',
    redirectUri:    process.env.FACEBOOK_REDIRECTURI    ||  config.rootUrl + 'login/callback'
};

module.exports = config;
Run Code Online (Sandbox Code Playgroud)

我不希望更改模块的配置文件,因为node_modules文件夹保留在gitignore列表中.对于配置模块使用我的应用程序的appIdappSecret,我需要设置process.env变量FACEBOOK_APPIDFACEBOOK_APPSECRET

我知道可以在调用sails lift时完成,但是无论如何都可以在app中设置这些值,这样我只需要调用

帆升降机

没有任何这些变量,应该自动设置?或者,在这里实现我想做的最好的方法是什么?

sails.js waterline

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

关于GCM中的规范ID(谷歌云消息)

我们最近为推送通知应用程序设置了GCM.服务器api在Node.js中,所以我使用节点模块node-gcm将通知推送到gcm服务器.

我们注意到有时数据包没有交付给最终用户.在做了一些搜索后,我调整了一些有助于提高可靠性的设置

我将旧设置更改为以下新设置:

  • delayWhileIdle标志从true到false,

  • collapseKey到时间而不是'demo'

  • timeToLive到7200而不是3

我还读到了关于规范id的内容.谷歌的页面 "规范注册ID被定义为您的应用程序请求的最后一次注册的ID.这是服务器在向设备发送消息时应使用的ID."

我在发送消息时记录了结果.结果中的规范id为0.这是什么意思?结果如下:

{ 
  multicast_id: 9180653668551804000,
  success: 1,
  failure: 0,
  canonical_ids: 0,
  results: [ { message_id: '0:1415521804106240%0209acc19067cebd' } ] 
}
Run Code Online (Sandbox Code Playgroud)

stackoverflow上的帖子建议用规范id替换注册ID.我不知道何时更换以及何时更换.

在我的服务器数据库中,在安装应用程序时请求reg_id,并将其与用户在数据库中的记录一起存储.另外,结果中的message_id和multicast_id等字段是什么?

node.js google-cloud-messaging

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

sails skipper:如何检查文件是否已上传

我使用风帆0.10.5,使用船长上传文件.现在我有一个用户可以上传文件的表单.但是,文件上载不是必需的.在后端,我需要检查文件是否已上传.

我的代码是这样的:

if(req.file('img')){
  req.file('img').upload({
    maxBytes: 10000000
  }, function (err, uploadedFiles){
    if(err){
      return res.json(500, err);
    }
    else if(uploadedFiles.length === 0){
      return res.json(500, {"error": "no file uploaded"});
    }
    else{
        // do something with image
    }
  });
}
else {
    // proceed without image
}
Run Code Online (Sandbox Code Playgroud)

没有上传图片时出现以下错误:

Error: EMAXBUFFER: An Upstream (`NOOP_img`) timed out before it was plugged into a receiver. It was still unused after waiting 4500ms. You can configure this timeout by changing the `maxTimeToBuffer` option.
    at null.<anonymous> (/home/mandeep/projects/thirstt/node_modules/sails/node_modules/skipper/standalone/Upstream/Upstream.js:86:15)
    at Timer.listOnTimeout [as …
Run Code Online (Sandbox Code Playgroud)

node.js sails.js

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