我正在使用Restify和Nodejs,我有一个关于将控制权返回到堆栈中下一个中间件的正确方法的问题.当我说"堆栈中的下一个中间件"时,我希望我使用正确的短语.
基本上,我的代码看起来像这样:
//server is the server created using Restify
server.use(function (req, res, next) {
//if some checks are a success
return next();
});
Run Code Online (Sandbox Code Playgroud)
现在,我想知道的是代码应该return next();或者应该只是next();将控制传递给堆栈中的下一个?
我检查了两个工作 - 这两段代码都会成功传递控制并按预期返回数据 - 我想知道的是两者之间是否存在差异,如果我需要使用另一个.
系统:Ubuntu 14.04
我使用命令安装了scrapy sudo pip install scrapy.
我正在按照这里的教程进行操作.
当我scrapy crawl dmoz在此步骤运行命令时,出现以下错误:
2015-07-04 15:28:58 [scrapy] INFO: Scrapy 1.0.1 started (bot: tutorial)
2015-07-04 15:28:58 [scrapy] INFO: Optional features available: ssl, http11
2015-07-04 15:28:58 [scrapy] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'tutorial.spiders', 'SPIDER_MODULES': ['tutorial.spiders'], 'BOT_NAME': 'tutorial'}
Traceback (most recent call last):
File "/usr/local/bin/scrapy", line 11, in <module>
sys.exit(execute())
File "/usr/local/lib/python2.7/dist-packages/scrapy/cmdline.py", line 143, in execute
_run_print_help(parser, _run_command, cmd, args, opts)
File "/usr/local/lib/python2.7/dist-packages/scrapy/cmdline.py", line 89, in _run_print_help
func(*a, **kw)
File …Run Code Online (Sandbox Code Playgroud) 我在express中检查了respons.js的代码并遇到了这段代码:
res.contentType =
res.type = function(type){
return this.set('Content-Type', ~type.indexOf('/')
? type
: mime.lookup(type));
};
Run Code Online (Sandbox Code Playgroud)
我的问题是~运营商在type.indexOf()声明面前做了什么?它的用途是什么,何时使用?
我试图解决可以在这里找到的SPOJ问题
以下是我的解决方案:
package main
import "fmt"
import "bufio"
import "os"
func main() {
var n, k int
var num int
var divisible int
in := bufio.NewReader(os.Stdin)
fmt.Fscan(in, &n)
fmt.Fscan(in, &k)
for n > 0 {
fmt.Fscan(in, &num)
if num%k == 0 {
divisible++
}
n--
}
fmt.Println(divisible)
}
Run Code Online (Sandbox Code Playgroud)
代码工作正常.这里的问题是我在SPOJ中执行它时会出现超时.
我是第一次使用,fmt.Scan但后来我遇到了这个线程,建议我使用bufio更快的输入扫描.
但我仍然遇到超时问题.我只是循环以获取所有输入,并且在此循环内我确定输入是否可被整除.所以,我认为它不是循环,而是输入扫描需要时间.如何改进这一点以更快地读取输入?或者是其他地方的问题?
我会尽可能详细地解释这个问题.
我试图使用AngularJS和Express,我遇到了麻烦.我希望显示HTML文件(不使用模板引擎).这些HTML文件将具有AngularJS指令.
但是,我无法显示简单的HTML文件本身!
目录结构如下:
Root
---->public
-------->js
------------>app.js
------------>controllers.js
---->views
-------->index.html
-------->partials
------------>test.html
---->app.js
Run Code Online (Sandbox Code Playgroud)
内容public/js/app.js是:
angular.module('myApp', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/', {templateUrl: 'partials/test.html', controller: IndexCtrl});
$routeProvider.otherwise({redirectTo: '/'});
}]);
Run Code Online (Sandbox Code Playgroud)
内容public/js/controllers/js是:
function IndexCtrl() {
}
Run Code Online (Sandbox Code Playgroud)
body标签的内容views/index.html是:
<div ng-view></div>
Run Code Online (Sandbox Code Playgroud)
而已.期望AngularJS将用test.html替换上述视图 - views/partials/test.html其内容为:
This is the test page!
Run Code Online (Sandbox Code Playgroud)
包含在段落标签内.而已!
最后,ROOT/app.js文件的内容是:
var express = require('express');
var app = module.exports = express();
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.static(__dirname + '/public'));
app.use(app.router); …Run Code Online (Sandbox Code Playgroud) 有没有办法使curl命令的JSON输出默认打印?也就是说,如果没有指定?pretty=truecurl URL 的选项,是否可以每次都显示相当漂亮的输出?
我在heroku上使用NodeJS.
我从另一台服务器读取文件并将其保存到/ temp目录中的应用程序中.接下来,我读取相同的文件将其传递给我的客户端.
保存文件然后随后读取的代码是:
http.request(options, function (pdfResponse) {
var filename = Math.random().toString(36).slice(2) + '.pdf',
filepath = nodePath.join(process.cwd(),'temp/' + filename);
pdfResponse.on('end', function () {
fs.readFile(filepath, function (err, contents) {
//Stuff to do after reading
});
});
//Read the response and save it directly into a file
pdfResponse.pipe(fs.createWriteStream(filepath));
});
Run Code Online (Sandbox Code Playgroud)
这在我的localhost上运行良好.
但是,当部署到heroku时,我收到以下错误:
events.js:72
throw er; // Unhandled 'error' event
Error: ENOENT, open '/app/temp/nvks0626yjf0qkt9.pdf'
Process exited with status 8
State changed from up to crashed
Run Code Online (Sandbox Code Playgroud)
我process.cwd()用来确保正确使用路径.但即便如此,它也无济于事.根据heroku文档,我可以自由地在应用程序目录中创建文件,我正在这样做.但我无法弄清楚为什么这不能读取文件...
我意识到以下内容仅读取单个单词字符串 -
fmt.Scan(&sentence)
Run Code Online (Sandbox Code Playgroud)
如何读取多单词字符串 - 例如,该字符串sentence应该存储包含多个单词的字符串。
我有一个字符串 - 例如,"Hello Worrld".注意"r"字母重复两次.
我希望识别连续出现的字母(两次或多次)并仅保留其中一个字母.也就是说,我希望用"r"获得"Hello World".
Golang似乎没有前瞻性的正则表达式.
我尝试使用以下正则表达式来识别连续重复的字母 -
r := regexp.Compile(`(.)\1`)
Run Code Online (Sandbox Code Playgroud)
但它选择了两个字母的出现 - 我希望只选择其中一个.