我一直在玩我在网上找到的一些Node.JS示例,但我还是需要一些帮助。
这是我的代码:http://pastebin.com/RV7t9fgQ
我希望我的服务器:
从客户端接收数据,用于MongoDB数据库中的搜索查询。
发生这种情况时,服务器会将结果发送回客户端。
我怎样才能实现这一目标?
现在服务器没有从客户端收到变量。
我无法测试这是否有效,因为客户端由于相同的原始策略而无法导入websocket库。
我已经读过这个可以很容易地通过使node.js服务于主html文件来修复,我该如何在我的服务器中实现它?
感谢您的帮助。
答案 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因为我发现它更容易包含到其他文件中。