我在Protractor中发送HTTP get请求时遇到问题.实际上,我需要在UI中执行某些操作后检查数据库中的数据.
如果我能够使用JQuery做到这一点将非常有用,但我无法找到如何在Protractor中使用JQuery的方法.
需要帮忙 !!
实际上,我们确实尝试使用Node.js lib,如下所示,但面临问题.
var http = require('http');
var json_data;
http.get('SiteUrl', function(response) {
var bodyString = '';
response.setEncoding('utf8');
response.on("data", function(chunk) {
bodyString += chunk;
});
response.on('end', function() {
json_data = bodyString;
console.log("1---->" + json_data);
});
}).on('error', function(e) {
console.log("There is an error in GET request");
});
console.log("2---->" + json_data);
Run Code Online (Sandbox Code Playgroud)
在调试之后,我们发现问题是Protractor没有等待HTTP请求完成并且只是传递.我们2---->先在控制台中获得第一名1---->.
我试图用gulp的concate模块连接我的js文件.
我的js文件的项目路径是:project/public/js/vendor/.
在供应商中我使用的是所有插件,我想将它们合并为一个文件
我使用以下代码来执行我的任务.
var gulp = require('gulp'),
concat = require('gulp-concat');
gulp.task('scripts',function(){
return gulp.src('./vendor/*.js')
.pipe(concat('global.js'))
.pipe(gulp.dest('concat/'));
});
gulp.task('default', ['scripts']);
Run Code Online (Sandbox Code Playgroud)
我想将文件导出到位于/ js的concat文件夹,但我没有文件.代码执行时没有错误报告.
[gulp] Using gulpfile /var/www/vhosts/site.dev/httpdocs/project/gulpfile.js
[gulp] Starting 'scripts'...
[gulp] Finished 'scripts' after 9.2 ms
[gulp] Starting 'default'...
[gulp] Finished 'default' after 8.8 ?s
Run Code Online (Sandbox Code Playgroud)
我做错什么了吗?
编辑1
我试图按照建议记录并返回计数:
[gulp] Using gulpfile /var/www/vhosts/site.dev/httpdocs/laravel/gulpfile.js
[gulp] Starting 'scripts'...
[gulp] Finished 'scripts' after 12 ms
[gulp] Starting 'default'...
[gulp] Finished 'default' after 9.37 ?s
Run Code Online (Sandbox Code Playgroud)
这是否意味着它没有选择任何js?
当我跑步时npm install,我面临以下错误.我无法找到问题所在.
我找到这个问题需要一些帮助.
d:\testing\node-sample-module\node_modules\ffi\node_modules\ref\node_modules\nan\nan_implementation_pre_12_inl.h(112): error C2668: 'v8::FunctionTemplate::New' : ambiguous call to overloaded function [d:\TESTING\node-sample-module\node_modules \ffi\node_modules\ref\build\binding.vcxproj]
C:\Users\SELVA\.nw-gyp\0.8.5\deps\v8\include\v8.h(3344): could be 'v8::Local<v8::FunctionTemplate> v8::FunctionTemplate::New(v8::FunctionCallback,v8::Handle<v8::Value>,v8::Handle<v8::Signature>,int)'
C:\Users\SELVA\.nw-gyp\0.8.5\deps\v8\include\v8.h(3343): or v8::Local<v8::FunctionTemplate> v8::FunctionTemplate::New(v8::InvocationCallback,v8::Handle<v8::Value>,v8::Handle<v8::Signature>,int)' while trying to match the argument list '(int, v8::Local<v8::Value>, v8::Local<v8::Signature>)'
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe` failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (c:\Users\SELVA\AppData\Roaming\npm\node_modules\nw-gyp\lib\build.js:267:23)
gyp ERR! stack at ChildProcess.emit (events.js:98:17)
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:820:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "node" "c:\\Users\\SELVA\\AppData\\Roaming\\npm\\node_modules\\nw-gyp\\bin\\nw-gyp.js" …Run Code Online (Sandbox Code Playgroud) 如何将ExpressJS应用程序中的任何错误记录到文件中?
我知道我可以使用monolog轻松记录Slim框架:
$app->get('/tickets', function (Request $request, Response $response) {
$this->logger->addInfo("Something interesting happened");
$mapper = new Simon\TicketMapper($this->db);
$tickets = $mapper->getTickets();
$response->getBody()->write(var_export($tickets, true));
return $response;
});
Run Code Online (Sandbox Code Playgroud)
在Express中,我通常将错误记录到控制台进行开发:
Model.findOne(options, function(err, doc) {
var output = {};
if (err) {
console.log("Error retrieving doc: " + err);
}
Run Code Online (Sandbox Code Playgroud)
但是在我的生产服务器中,当应用程序出错时,我确实需要一个有用的日志文件.
有任何想法吗?
在Express中app.js,它具有:
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: …Run Code Online (Sandbox Code Playgroud) 如何在表单属性中打印cookie值?
这是我到目前为止的代码.
if(req.body.remember_me){
res.cookie("cookie_email_id", req.body.email);
res.cookie('password', req.body.password);
}else{
res.clearCookie("cookie_email_id");
res.clearCookie("password");
}
Run Code Online (Sandbox Code Playgroud)
我已经设置了控制台cookie中的My Cookie
document.cookie :
cookie_email_id=abc%40gmail.com; password=123456789
我正在使用请求承诺库并尝试根据其文档将超时设置为毫秒。我在服务器端很少有请求需要超过一分钟才能响应,无论我为超时设置什么值,请求总是在一分钟后超时。在请求中设置读取超时的正确方法是什么?
我的请求
rp({
uri: "http://something.com/long_running_request",
timeout: 180000
})
Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 18.04 上安装了纱线
yarn --version
0.32
Run Code Online (Sandbox Code Playgroud)
但是PhpStorm -> Settings -> Languages and Frameworks -> Node.js and NPM里面说没有找到纱线。
我试图用reduce嵌套数组转换为对象.
我想转换 var bookprice = [["book1", "$5"], ["book2", "$2"], ["book3", "$7"]];
至
var bookpriceObj = {
"book1": "$5",
"book2": "$2",
"book3": "$7"
};
Run Code Online (Sandbox Code Playgroud)
这是我试过的
var bookprice = [["book1", "$5"], ["book2", "$2"], ["book3", "$7"]];
bookpriceObj = {};
bookprice.reduce(function(a, cv, ci, arr){
for (var i = 0; i < arr.length; ++i)
bookpriceObj [i] = arr[i];
return bookpriceObj ;
})
Run Code Online (Sandbox Code Playgroud)
但是以下结果并不是理想的结果
{
["book1", "$5"]
["book2", "$2"]
["book3", "$7"]
}
Run Code Online (Sandbox Code Playgroud) 在向 google recaptcha api 发出发布请求时,我真的很难获得成功的响应。我收到以下回复:
{
"success": false,
"error-codes": [
"invalid-input-response",
"invalid-input-secret"
]
}
Run Code Online (Sandbox Code Playgroud)
我查看了reCAPTCHA - error-codes: 'missing-input-response', 'missing-input-secret' 在验证用户的响应时(缺少 POST 的详细信息),并尽可能密切地遵循答案,但没有成功。
这是我的文件如下:
var request = require('request');
module.exports = {
verifyCaptcha: function(req, res) {
var secret = 'SECRET_KEY';
var response = JSON.stringify(req.body.response);
request({
url: 'https://www.google.com/recaptcha/api/siteverify',
method: 'POST',
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: `secret=${secret}&response=${response}`,
}, function (err, response, body) {
if (err) {
res.status(500).send({
error: "Could not verify captcha"
});
} else {
res.status(200).send({
message: body
});
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Node.js 中执行以下 MongoDB 命令:
db.events.group({
key: {
'timestamp.d': true
},
cond: {
'event_name': 'search'
},
initial: {
'count': 0,
'empty': 0,
'redos': 0
},
reduce: function(item, summaries) {
summaries.count++;
if (item.result_count == 0) {
summaries.empty++;
}
if (item.original_query) {
summaries.redos++;
}
var totalSuccesses = (summaries.count - summaries.redos - summaries.empty);
summaries.percentNonFailures = (totalSuccesses / summaries.count) * 100
}
})
Run Code Online (Sandbox Code Playgroud)
这对于 Mongo 命令来说非常有用,就像白天给我总结一样。当我在 Node.js 中尝试这个时:
db.collection('events', function(err, collection) {
collection.group({
"timestamp.d": true
}, {
"event_name": "search"
}, {
count: 0,
empty: …Run Code Online (Sandbox Code Playgroud)