Javascript 对象在node.js simple server中变得未定义
好的,当我运行这个服务器时:Javascript 对象在node.js simple server中变得未定义,javascript,jquery,node.js,Javascript,Jquery,Node.js,好的,当我运行这个服务器时: var net = require('net'); var server = net.createServer(function (data) { console.log("Hello " + data.name); }); server.listen(1337, '127.0.0.1'); 然后在chrome上浏览此页面(从文件,而不是域): 我的问题是,为什么我的数据对象的名称在发送到服务器时变得未定义 编辑:所以我将服务器更改为: var ht
var net = require('net');
var server = net.createServer(function (data) {
console.log("Hello " + data.name);
});
server.listen(1337, '127.0.0.1');
然后在chrome上浏览此页面(从文件,而不是域):
我的问题是,为什么我的数据对象的名称在发送到服务器时变得未定义
编辑:所以我将服务器更改为:
var http = require('http');
var server = http.createServer(function (data) {
console.log("Hello " + data.name);
});
server.listen(1337, '127.0.0.1');
并将我客户的脚本更改为:
var data = {
name: "John"
};
$.post('http://127.0.0.1:1337/', data);
但是我仍然得到相同的错误。
net.connection
创建了一个普通的TCP套接字,而不是HTTP服务器
您需要的是http.createServer
,而它接受作为参数的函数不会得到一个只包含提交数据的简单对象。您需要阅读http模块的手册,了解如何处理请求对象
这里有一个例子(只需向下滚动)
另请参见API文档了解和。
数据是一个简单的对象。匿名函数正在被调用为带有new
@thesystem的构造函数-这使它成为匿名构造函数的一个实例,而不是一个简单的对象。好的,我做了更改(如编辑中所反映的),但我得到了相同的错误。@thesystem-尽管经过测试,jQuery看起来可以处理这个问题,因此,我删除了答案的第一部分,因为它是一条红鲱鱼。(这显然是一种非典型代码)@CyanPrime-你所做的就是改用http
而不是net
。这是第一步。阅读答案的其余部分。你是否遵循给定的例子?昆廷举了一个例子:是什么让你认为服务器连接回调会自动给你在客户端创建并发送的对象?@Mustafa我想要的是向服务器发送一个对象,并让服务器打印出对象的值(在本例中是名称)。我不想让文本向世界问好。你知道HTTP协议吗?如果你想,只要读一下这本书如果你想找魔法,你就找不到了。您需要学习API并编写适当的代码。
var http = require('http');
var server = http.createServer(function (data) {
console.log("Hello " + data.name);
});
server.listen(1337, '127.0.0.1');
var data = {
name: "John"
};
$.post('http://127.0.0.1:1337/', data);