小编cal*_*tie的帖子

Restify Middleware - 正确调用堆栈中的下一个中间件

我正在使用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();将控制传递给堆栈中的下一个?

我检查了两个工作 - 这两段代码都会成功传递控制并按预期返回数据 - 我想知道的是两者之间是否存在差异,如果我需要使用另一个.

node.js restify

10
推荐指数
1
解决办法
6396
查看次数

Scrapy - 没有名为mail.smtp的模块

系统: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)

python scrapy

9
推荐指数
2
解决办法
3767
查看次数

解释javascript代码 - 三元IF运算符前的Tilde符号

我在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()声明面前做了什么?它的用途是什么,何时使用?

javascript node.js express

8
推荐指数
1
解决办法
646
查看次数

更快的输入扫描

我试图解决可以在这里找到的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更快的输入扫描.

但我仍然遇到超时问题.我只是循环以获取所有输入,并且在此循环内我确定输入是否可被整除.所以,我认为它不是循环,而是输入扫描需要时间.如何改进这一点以更快地读取输入?或者是其他地方的问题?

string go

8
推荐指数
1
解决办法
2704
查看次数

Express和AngularJS - 尝试打开主页时网页冻结

我会尽可能详细地解释这个问题.

我试图使用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)

node.js express angularjs

7
推荐指数
1
解决办法
4530
查看次数

弹性搜索:将漂亮格式设为默认格式

有没有办法使curl命令的JSON输出默认打印?也就是说,如果没有指定?pretty=truecurl URL 的选项,是否可以每次都显示相当漂亮的输出?

elasticsearch

7
推荐指数
1
解决办法
9186
查看次数

无法在heroku中读取已保存的文件

我在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文档,我可以自由地在应用程序目录中创建文件,我正在这样做.但我无法弄清楚为什么这不能读取文件...

heroku node.js

6
推荐指数
1
解决办法
4608
查看次数

平方和平方根的整数函数

当前,math.Pow()math.sqrt接受float64类型参数。

我们是否有接受int类型参数的等效函数?

go

5
推荐指数
2
解决办法
6620
查看次数

从控制台读取多字字符串

我意识到以下内容仅读取单个单词字符串 -

fmt.Scan(&sentence)
Run Code Online (Sandbox Code Playgroud)

如何读取多单词字符串 - 例如,该字符串sentence应该存储包含多个单词的字符串。

go

5
推荐指数
2
解决办法
6009
查看次数

Lookahead正则表达式 - 识别重复的连续字母

我有一个字符串 - 例如,"Hello Worrld".注意"r"字母重复两次.

我希望识别连续出现的字母(两次或多次)并仅保留其中一个字母.也就是说,我希望用"r"获得"Hello World".

Golang似乎没有前瞻性的正则表达式.

我尝试使用以下正则表达式来识别连续重复的字母 -

r := regexp.Compile(`(.)\1`)
Run Code Online (Sandbox Code Playgroud)

但它选择了两个字母的出现 - 我希望只选择其中一个.

regex go

5
推荐指数
1
解决办法
216
查看次数