我试图在app.get函数中使用一个promise,它将运行一个将在promise上运行的查询.但问题是响应不等待承诺而只是回应.
任何想法代码应该如何承诺可以在快递应用程序中的app.get内生活?
我有一个clientid和用户名,我希望他们都发送套接字.
client.userid = userid;
client.username = username;
client.emit('onconnected', { id: client.userid, name: client.username });
Run Code Online (Sandbox Code Playgroud)
我试过这个例子,但似乎没有用
我发现当我执行多个JUnit测试时静态块只运行一次.如何强制它为每个测试方法运行?我正在使用最新的JUnit 4.8.2
另外,根据xUnit设计原则,每种方法都应该完全独立于其他方法.为什么静态块只执行一次?
@Test TestMethod1 () {
Accounts ac = new Accounts();
ac.method1(); //kill the thread inside
}
@Test TestMethod2 () {
Accounts ac = new Accounts();
ac.method2(); // the thread is no longer available!!
}
class Accounts {
static {
// initalize one thread to monitor something
}
}
Run Code Online (Sandbox Code Playgroud)
当TestMethod1和TestMethod2位于不同的测试类中时,甚至会发生这种情况.
有没有办法使用__getattr__确定方法和属性调用之间的区别?
即:
class Bar(object):
def __getattr__(self, name):
if THIS_IS_A_METHOD_CALL:
# Handle method call
def method(**kwargs):
return 'foo'
return method
else:
# Handle attribute call
return 'bar'
foo=Bar()
print(foo.test_method()) # foo
print(foo.test_attribute) # bar
Run Code Online (Sandbox Code Playgroud)
这些方法不是本地的,因此无法使用getattr/callable来确定它.我也理解方法是属性,并且可能没有解决方案.只是希望有一个.
我仍然很擅长编程,而且我很难希望for/foreach之间有所不同.在一个更技术性的感叹号中,for each循环计算它需要多少次 - 与下面的代码不同.
假设我是这样的for循环的样本:
var i = result = 0;
for (var i = 2; i < process.argv.length; i++) {
result = result + Number(process.argv[i]);
}
console.log(result);
Run Code Online (Sandbox Code Playgroud)
如果这是一个foreach声明,这个代码将如何改变?解释是对的吗?或者还有更多吗?
先感谢您.
我使用aync.parallel并行运行两个函数.这些函数请求RSS提要.然后解析RSS提要并将其添加到我的网页.
但由于某种原因async.parallel
运行回调方法而不等到两个函数完成
任务完成后,结果将作为数组传递给最终回调.
我的代码.
require('async').parallel([ function(callback) {
fetchRss(res, bbcOpts); // Needs time to request and parse
callback();
}, function(callback) {
// Very fast.
callback();
} ], function done(err, results) {
if (err) {
throw err;
}
res.end("Done!");
});
Run Code Online (Sandbox Code Playgroud)
事实上我只有"完成!" 在我的网页上.为什么?
我为什么需要打电话res.end()
?
在Node.js的文件说:
必须在每个响应上调用方法response.end().
如果我不打电话,我的网页将被"下载"(我的意思是我的浏览器地址栏中的进度条).
javascript parallel-processing node.js progress-bar node-async
对于一些我必须运行的包,sudo npm install -g
而对于其他包npm install
就足够了.
为什么和有什么区别?
例如:
npm install -g grunt-cli # doesn't work
sudo npm install -g grunt-cli # works
npm install websocket-stream # works
Run Code Online (Sandbox Code Playgroud)
是sudo
必要只与-g
标志?
我需要从客户端(nodejs命令行)和服务器(表达nodejs)流式传输文件。
这是客户端:
var request = require('request');
var fs = require('fs');
// ...
var readStream = fs.createReadStream(file.path);
readStream.on('end', function() {
that.emit('finished');
});
readStream.pipe(request.post(target));
// ...
Run Code Online (Sandbox Code Playgroud)
这是服务器端:
var fs = require('fs');
var path = require('path');
// ...
app.post('/:filename', function(req, res) {
req.setEncoding('binary');
var filename = path.basename(req.params.filename);
filename = path.resolve(destinationDir, filename);
var dst = fs.createWriteStream(filename);
req.pipe(dst);
req.on('end', function() {
res.send(200);
});
});
// ...
Run Code Online (Sandbox Code Playgroud)
一切正常,文件已正确保存在服务器端...但是它们比源文件大50%。我尝试查看两个文件之间的区别,hexdump
并且服务器端文件的内容相似,但有时为0xC2。我想这与编码有关。
我有一个64位无符号整数,我需要在PostgreSQL中表示.我把它分解为两个32位无符号整数,high
并且low
.为了让Postgres的接受它,我需要转换high
,并low
以代表符号的64位整数的字符串.
如何将两个32位无符号整数转换为以十进制表示的有符号64位整数的字符串?
我目前正在使用grunt-sass和libsass的node-sass包装器.反正浮点数舍入时有没有改变精度?我知道它可以在ruby sass中更改,但无论如何都无法在libsass中更改它.
它目前舍入到5,但如果我需要给出一个重复数字的行高,即1.33333,我会在它转换为屏幕上的像素时出现微小的差异.将它舍入到7个位置可以解决这个问题.
如果有人设法改变这个,请告诉我.
提前致谢
我刚用安装成功的nvm安装了nodejs版本0.10.14.在安装nodejs之前,我安装了zeromq 2.2.0版.
出于测试目的,我试图在下面运行一个基本的pub示例.
var zmq = require('zmq');
var socket = zmq.socket('pub');
console.log("Binding socket on port 8800...");
socket.bind('tcp://localhost:8800', function(err){
if(err){
console.log(err)
} else{
console.log("listening on port 8800");
}
});
socket.send("hello this is testServer2 on port 8800...");
Run Code Online (Sandbox Code Playgroud)
但这是投掷错误 -
events.js:72
throw er; // Unhandled 'error' event
^
TypeError: Socket is busy
at Socket._ioevents (/home/zishan/node_modules/zmq/lib/index.js:198:22)
at Socket._flush (/home/zishan/node_modules/zmq/lib/index.js:343:23)
at Socket.send (/home/zishan/node_modules/zmq/lib/index.js:318:42)
at Object.<anonymous> (/home/zishan/newsURLCollector/testServer2.js:16:8)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
Run Code Online (Sandbox Code Playgroud)
端口8800已经使用ufw打开了. …
我想创建一个用户可以转到屏幕最右边的游戏,如果他们再往前走,他们会滑入新视图.
所以基本上,如果他们有3个怪物在屏幕#1上追逐他们,并且他们一直向右走并继续前进,他们将进入屏幕#2,那里将有5个新的怪物和一个新的地形.
当游戏开始时,我应该立即为每个屏幕初始化所有NPC怪物和地形特征,还是应该在他们输入时初始化每个屏幕?什么是存储每个屏幕内容的最佳格式/方式?
我使用以下方法生成两个连接文件:
concat: {
header: {
src: [
// these will go in header
'assets/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js',
'assets/js/jquery-ui/jquery-ui.js',
'assets/js/select2/select2.min.js',
'assets/js/icheck/jquery.icheck.js',
'assets/uploadify/js/jquery.fileupload.js'
],
dest: 'assets/js/admin_header_common.js'
},
footer: {
src: [
'assets/js/vendor/bootstrap.min.js',
'assets/js/bootstrap-lightbox.min.js',
'assets/js/jqBootstrapValidation.js',
'assets/js/tinymce/tinymce.min.js',
'assets/js/common.js'
],
dest: 'assets/js/admin_footer_common.js'
}
},
Run Code Online (Sandbox Code Playgroud)
现在我想压缩这两个生成的连接文件,所以我这样做:
// minify js
uglify: {
build: {
header: {
src: 'assets/js/admin_header_common.js',
dest: 'assets/js/admin_header_common.min.js'
},
top: {
src: 'assets/js/admin_footer_common.js',
dest: 'assets/js/admin_footer_common.min.js'
}
}
},
Run Code Online (Sandbox Code Playgroud)
但问题是生成的文件没有被压缩.以上uglify
声明是好还是我遗失了什么?我只需要压缩两个文件并生成两个单独的目标文件.
非常感谢您的帮助
node.js ×10
javascript ×5
express ×3
java ×2
applet ×1
binaryfiles ×1
for-loop ×1
foreach ×1
getattr ×1
gruntjs ×1
junit ×1
node-async ×1
npm ×1
postgresql ×1
progress-bar ×1
promise ×1
python ×1
sass ×1
socket.io ×1
stream ×1
sudo ×1
unit-testing ×1
zeromq ×1