小编the*_*ham的帖子

如何使用Mongoose访问预先存在的集合?

question在数据库中有300个对象的大集合test.我可以通过MongoDB的交互式shell轻松地与这个集合进行交互; 但是,当我尝试通过Mongoose在express.js应用程序中获取集合时,我得到一个空数组.

我的问题是,如何访问这个已经存在的数据集而不是在Express中重新创建它?这是一些代码:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

mongoose.connect('mongodb://localhost/test');
mongoose.model('question', new Schema({ url: String, text: String, id: Number }));

var questions = mongoose.model('question');
questions.find({}, function(err, data) { console.log(err, data, data.length); });
Run Code Online (Sandbox Code Playgroud)

这输出:

null [] 0
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js express

122
推荐指数
6
解决办法
10万
查看次数

在本地网络上的其他人如何在我的机器上运行时访问我的NodeJS应用程序?

我有一个非常直截了当的问题.我用NodeJS做了一个网页游戏,我可以自己成功地玩多个浏览器窗口并排打开它; 但是,我想知道其他本地机器是否可以与我一起访问和玩游戏.

我天真地尝试使用这个网址:my-ip-address:8000它将无法正常工作.

javascript networking node.js

41
推荐指数
7
解决办法
10万
查看次数

JSONP请求返回错误:"未捕获的SyntaxError:意外的令牌:"

所以我试图使用以下jQuery代码向Stack Exchange API发出请求:

$.ajax({                                                                                                                                                                                                        
    type: 'POST',                                                                                                                                                                                                 
    url: 'http://api.stackoverflow.com/1.1/stats',                                                                                                                                              
    dataType: 'jsonp',                                                                                                                                                                                                
    success: function() { console.log('Success!'); },                                                                                                                                                                                       
    error: function() { console.log('Uh Oh!'); }                                                                                                                                                              
});   
Run Code Online (Sandbox Code Playgroud)

但是当我在我的机器上打开文件,在FireFox或Chrome中,并发出请求时,我收到此错误:

Resource interpreted as Script but transferred with MIME type application/json.
Uncaught SyntaxError: Unexpected token :
Uh Oh!
Run Code Online (Sandbox Code Playgroud)

我不知道发生了什么事.我知道Stack Exchange API Gzips它的响应,这会导致任何麻烦吗?

javascript ajax jquery stackexchange-api

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

将node-webkit应用程序打包为".appx"(适用于Windows 8应用商店)

我想知道如何将node-webkit应用程序打包为Windows 8商店的.appx?我已经能够创建我的应用程序的.exe,只要它与.dll的目录在同一个目录中.

这是我的目录当前的样子:

application/
    MyApplication.exe
    ffmpegsumo.dll
    icudt.dll
    libEGL.dll
    libGLESv2.dll
    nw.pak
Run Code Online (Sandbox Code Playgroud)

我不熟悉Windows开发,因为我主要使用OSX,所以我不知道接下来要把这个.exe打包为.appx的步骤.任何帮助表示赞赏.

windows node.js windows-8 windows-store-apps node-webkit

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

阻止Chrome扩展程序的popup.html打开自己

我正在创建一个Chrome扩展程序,其中包含一个background.html每分钟从API请求一次信息的文件.一旦它收到信息,它就会发送popup.html一条消息,其中包含弹出窗口用于将新HTML元素附加到弹出框体上的JSON信息.

问题是后台持续运行(应该如此),但即使弹出窗口关闭,它也会弹出.这导致弹出窗口每分钟打开一次非常烦人.

我想知道,有没有办法看看popup是否关闭,如果是这样的话,什么都不做?或者还有另一种方法可以防止弹出窗口自行打开?

这是Github存储库,但重要的部分在下面突出显示.

这是我在弹出窗口的方式:

// background.js

function sendQuestions()                                                                                                                                                                                    
{                                                                                                                                                                                                           
    var questions = JSON.parse(db.getItem(storage));                                                                                                                                                        
    chrome.extension.sendRequest(appid, { 'questions': questions }, function() {});                                                                                                                         
}  

setInterval(sendQuestions, 60e3);
Run Code Online (Sandbox Code Playgroud)

这是弹出窗口处理它的方式:

// popup.js

chrome.extension.onRequest.addListener(function(request) {                                                                                                                                                  
    if (request.questions) {                                                                                                                                                                                
        displayQuestions(request.questions);                                                                                                                                                                
    }
});

function displayQuestions(questions)                                                                                                                                                                        
{     
    for (i = 0; i < questions.length; i++) {                                                                                                                                                                
        var question = questions[i];  
        var htmlBlock = // ... generate a block of html ...
        $('#container').prepend(htmlBlock);
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery google-chrome-extension

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

无法在Express中呈现swig模板

所以我正在尝试使用consolidate.js来使用express 渲染swig模板,但是当我尝试从另一个模板中"扩展"一个模板时,我收到以下错误:

Error: ENOENT, no such file or directory '//one.html
Run Code Online (Sandbox Code Playgroud)

在我的app.js文件中,我将swig设置为我的渲染引擎(仅包含相关代码):

var consolidate = require('consolidate');

app.set('view engine', 'html');
app.set('views', __dirname + '/views');
app.engine('.html', consolidate.swig);

app.get('/test', function(req, res) {
    res.render('two');
});
Run Code Online (Sandbox Code Playgroud)

我有一个基本模板,one.html:

<h3>My Site</h3>
{% block content %}
    Welcome
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

然后是一个继承模板,two.html:

{% extends 'one.html' %}

{% block content %}
    This is an inner page.
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

那么为什么swig会寻找one.html一条路径//one.html(如上面的错误?)感谢您的帮助.

javascript node.js express swig-template

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