我在函数中的node.js中有以下代码readFile:
res.setHeader("content-type", 'application/octet-stream');
res.setHeader("Content-Disposition", 'attachment; filename="' + 'original' + '"' + "; filename*=UTF-8''" + 'original' + "");
var readStream;
var exists = fs.existsSync(fullPath);
if (exists) {
callback(true);
readStream = fs.createReadStream(fullPath);
readStream.pipe(res);
} else {
callback(false);
return;
}
res.on('finish', function(){
logger.info('response ending');
readStream.close();
})
res.on('close', function(){
logger.info('response close');
readStream.close();
})
res.on('error', function(error){
logger.info(error);
readStream.close();
})
Run Code Online (Sandbox Code Playgroud)
出于某种原因,一些请求是发出close事件,而其他请求finish.据我所知,close当出现问题时会发出.
近距离事件可以在2秒到2分钟之间发射.在极少数情况下,不会发出close任何finish事件,也不会发出任何事件,并且请求被"卡住",等待响应.
一些请求会成功的原因是什么,其他请求不会成功?
编辑
我怎么知道为什么发生近距离事件?它是客户端问题还是我的应用程序中的错误?
我尝试编写正则表达式以便:
我有文字:ClassNameOne839,我想得到文字:Class Name One
有一个库函数可以做到吗?或任何正则表达式?
我有这个代码,以便使用node.js上传文件:
app.use(express.bodyParser());
// or, as `req.files` is only provided by the multipart middleware, you could
// add just that if you're not concerned with parsing non-multipart uploads,
// like:
app.use(express.multipart());
app.get('/',function(req,res){
fs.readFile('uploadHTML.html',function (err, data){
res.writeHead(200, {'Content-Type': 'text/html','Content-Length':data.length});
res.write(data);
res.end();
});
});
app.post('/upload',function(req,res)
{
console.log(req.files);
fs.readFile(req.files.displayImage.path, function (err, data) {
// ...
var newPath = __dirname;
fs.writeFile(newPath, data, function (err) {
res.redirect("back");
});
});
});
Run Code Online (Sandbox Code Playgroud)
这是HTML文件:
<html>
<head>
<title>Upload Example</title>
</head>
<body>
<form id="uploadForm"
enctype="multipart/form-data"
action="/upload"
method="post">
<input type="file" id="userPhotoInput" name="displayImage" …Run Code Online (Sandbox Code Playgroud) 我试图找到190!在C.
我将我的变量定义为long double,但我看到它(仅正确)计算到172!:
在那之后,我得到了#INF00000...`
有办法吗?
我对(Selenium 2)有一个大问题Webdriver。
在我的测试代码中,我找到测试开始时的所有元素,并对它们执行一些操作(例如click()、检查属性等)。我的问题是我的页面刷新并重新加载我的元素,而 Webdriver 不知道再次识别这些元素。
我知道我可以再次找到我的元素,但在某些函数中我不知道我的 XPath/ids,并且我只得到 WebElements,而不是 XPath/ID。
我说的对吗?不可能将元素读入变量并重新使用它们?
我试图重构下一个案例:
class Gen{
public void startClick(A a, B b, List<C> lstC, SortX sort){
for (int i=0; i<lstC.size(); i++){
try{
// some code with try and catch statement
switch (sort){
case SortA:
newOne(a, b, lstc);
break;
case SortB:
otherfunction(a);
break;
case SortC:
someotherfunction(lstC, a);
break;
}
}
} catch (Exception e){ //some code}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试创建和对象一个对象,就像我们在这里看到的那样:http://sourcemaking.com/refactoring/replace-conditional-with-polymorphism
所以我创建一个对象:SortOfType,然后对每一种情况下,我也创建一个对象(SortA,SortB,SortC).SortOfType获取实例的函数Gen,以及其他Sort对象.我没有成功的是调用类Gen的sortOfType.我该怎么做?这种重构是可能的吗?
我试图在WebDriver中为Page Object创建某种代码生成.
我读到了它,并观看下一个讲座:http: //www.youtube.com/watch?v = mSCFsUOgPpw
我还看到了一些为我的应用程序中的每个新页面创建页面对象的工具,所以我知道如何识别和创建与我相关的WebElement(通过ID或XPath),并创建一个新的页面对象.
但我有两个主要问题:
我在一本书中看到了一个关于java的例子:
public class A{
public A(){
System.out.println("A");
}
}
public class B extends A{
public B(){
super();
System.out.println("B");
}
public static void main(String[] args){
B b = new B();
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么要super()在这里?即使我删除super(),我也会得到相同的结果(A将被打印,然后是B).据我所知,当我初始化子类时,父类在它之前初始化.为什么要使用super()?
我读了一本关于Java挑战的书,它提出了下一个问题:
创建一个函数,该函数获取一个数字作为参数,并检测number是7的倍数还是包含数字7.
签名是: public boolean find7(int num)
我创建这个函数,当数字在0到99之间时,由下一个条件:
if (num mod 7 == 0 || num / 10 ==7 || num mod 10 == 7)
return true;
Run Code Online (Sandbox Code Playgroud)
但数量大于99的是什么?像177,或709?我该如何检测它?