我知道我可以使用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) 我试图从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".这该怎么做 ?
我正在使用mailcomposer和sendRawEmailAWS开发工具包的方法发送带有附件的邮件。我可以使用to和cc字段发送电子邮件,但是当我在中添加地址时bcc,邮件不会送达。虽然没有失败。我可能会缺少文档中未提及的任何额外配置吗?
我正在尝试使用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列表中.对于配置模块使用我的应用程序的appId和appSecret,我需要设置process.env变量FACEBOOK_APPID和FACEBOOK_APPSECRET
我知道可以在调用sails lift时完成,但是无论如何都可以在app中设置这些值,这样我只需要调用
帆升降机
没有任何这些变量,应该自动设置?或者,在这里实现我想做的最好的方法是什么?
我们最近为推送通知应用程序设置了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等字段是什么?
我使用风帆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)