我发现了一个非常有用的代码片段on GitHub可以在 NodeJS 中提供简单的服务器-客户端通信。
经过一些小的格式化后,我的代码如下所示:
客户端(Jade + Javascript)
head
title jsonp test
script(src='http://code.jquery.com/jquery-1.6.2.min.js')
script(type='text/javascript').
$(function () {
$('#select_link').click(function (e) {
e.preventDefault();
console.log('select_link clicked');
var data = {};
data.title = "title";
data.message = "message";
$.ajax({
type: 'POST',
data: JSON.stringify(data),
contentType: 'application/json',
url: 'http://localhost:7776/domaintest',
success: function (data) {
console.log('success');
console.log(JSON.stringify(data));
}
});
});
});
body
#select_div
a#select_link(href='#') Test
服务器(Javascript)
var express = require('express');
var app = express.createServer();
app.use(express.bodyParser());
app.post('/domaintest', function(req, res){
var obj = {};
console.log('body: ' + JSON.stringify(req.body));
res.send(req.body);
});
app.listen(7776);
定义到客户端的路由(有人告诉我这对于服务器来说是不必要的,因为 app.post
可以达到目的)
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
res.render('index');
});
module.exports = router;
结果是一个可以点击的简单文本“Test”。当我单击时,实际事件应该发生,只要我从代码中读出它,但安装的浏览器在 中显示
。非常准确地说,根据调试器,错误发生在 POST http://localhost:7776/domaintest 404 (Not Found)
jquery-1.6.2.min.js:18$.ajax
中。
由于 jQuery 代码由于格式原因几乎无法读取(不是判断,可能有它的原因),我需要你的帮助。错误的可能来源是什么?我是不是忘了提到什么?
最佳答案
将您的 server.js 文件更改为此。我还没有测试过代码,但这应该可以工作。
var express = require('express');
var app = express.createServer();
var router = express.Router();
app.use(express.bodyParser());
router.post('/domaintest', function(req, res, next) {
var obj = {};
console.log('body: ' + JSON.stringify(req.body));
res.send(req.body);
});
app.listen(7776);
您可以阅读此内容以获取更多信息http://adrianmejia.com/blog/2014/10/01/creating-a-restful-api-tutorial-with-nodejs-and-mongodb/
关于javascript - NodeJS 中客户端与服务器通信的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35213706/