使用node.js在mongodb和客户端之间传输数据

时间:2015-09-02 18:34:48

标签: node.js mongodb

我一直在玩我在网上找到的一些Node.JS示例,但我还是需要一些帮助。

这是我的代码:http://pastebin.com/RV7t9fgQ

我希望我的服务器:

  • 从客户端接收数据,用于MongoDB数据库中的搜索查询。

  • 发生这种情况时,服务器会将结果发送回客户端。

我怎样才能实现这一目标?

现在服务器没有从客户端收到变量。

我无法测试这是否有效,因为客户端由于相同的原始策略而无法导入websocket库。

我已经读过这个可以很容易地通过使node.js服务于主html文件来修复,我该如何在我的服务器中实现它?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我建议使用Express来处理请求和提供HTML文件。你需要它,但你没有使用它。许多人使用Express,因此您可以很好地与公司合作并快速找到答案。它与Socket.io的语法非常相似,因此您的代码不会发生太大变化。

当您运行基本的Express服务器时,您可以提供一个HTML文件,该文件的搜索查询发送类似于此的GET请求:

<form action='/search' method='GET'>
    <h2>Search:</h2>
    <input type='search' name='q'>
    <input type='submit'>
</form>

并将其与您的服务器链接如下:

var express = require('express'),
    app = express()

app.get('/', function(req, res) {
    res.send('/path/to/static/page.html')
}

app.get('/search', function(req, res) {
    var query = req.query.q
    db.collection('collection').find(query, function(err, docs) {
        if (err) {
            res.status(500).send(err)
        } else {
            res.send(docs)
        }
    })
})

在这个例子中,我没有包括你如何连接到数据库,因为它们有很多种方法。您似乎使用了本地MongoDB NodeJS驱动程序,我确信它可以很好地工作,但我使用MongoSkin因为我发现它更容易包含到其他文件中。