javascript - NodeJS 中客户端与服务器通信的简单方法

标签 javascript jquery ajax node.js express

我发现了一个非常有用的代码片段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/

相关文章:

javascript - jQuery Ajax : FormData is returning 403 error for base64 data

javascript - 样式化组件/React - 外部元素样式

javascript - 如何使用 momentjs 处理大日期?

javascript - .next() 和 .prev() 循环遍历 div

javascript - 访问奇怪的对象

javascript - 如何在onload或dom准备好后调用带参数的函数?

javascript - 回调实例化另一个发出 AJAX 请求的类的类

javascript - Bootstrap 3 : Extending div outside container on right side

jquery - 电子邮件验证空白不需要输入

javascript - 函数未定义,即使它是