旧行李 2015-01-24 10:41 采纳率: 25%
浏览 375

如何在node.js中使用Ajax?

我知道以前有人问过这个问题,但我还是不明白。我正在使用node.js,还想在其中使用Ajax。我的代码是:

var $ = require('jquery');
var http = require("http");
var ws = require("nodejs-websocket");
var fs = require("fs");
var colors = require('colors');

http.createServer(function (req, res) {
    fs.createReadStream("index.php").pipe(res)
}).listen(8080)
// ###################################################################################################################################
// ########################################################## CLASSE SERVER ##########################################################
// ###################################################################################################################################
var tableauDeJoueur = new Array();

var server = ws.createServer(function (connection){
    connection.nickname = null
    connection.on("text", function (str){
        if (connection.nickname === null){
            connection.nickname = str;
            
            console.log((connection.nickname+" arrive sur PixelWorld !").green);
        }
        else{
            var code = str.substring(0,2);
            var reste = str.substring(2,str.length);
            switch(code){
                case "01":
                    var coupe = reste.split("4H[m~Ft7");
                    var mail = coupe[0];
                    var mdp = coupe[1];
                    $.ajax({
                        url: "fonctionPHP/connection.php",              
                        type: "POST",
                        data: {'mail': mail,'mdp': mdp},
                        async:false,
                        success: function(html){
                            if(html == "OK"){
                                console.log("oui");
                            }
                            else{
                                console.log("non");
                            }
                        }
                    });
                    break;
                case "02":
                    break;
            }
        }
    })
    connection.on("close", function (){
        console.log((connection.nickname+" a quitté PixelWorld !").red);
    })
})
server.listen(8081)

function broadcast(str) {
    server.connections.forEach(function (connection) {
        connection.sendText(str)
    })
}

我的问题是在“ $ .ajax({”这里。当用户到来时,服务器会通知我,这没关系。但是,当它发送带有01代码的消息时,节点会崩溃并提示:

 $.ajax({
                                          ^
TypeError: Object function ( w ) {
                                if ( !w.document ) {
                                        throw new Error( "jQuery requires a window with a document" );
                                }
                                return factory( w );
                        } has no method 'ajax'
    at Connection.<anonymous> (/var/www/dhkuhnuhbnkiuh/app.js:46:8)
    at Connection.EventEmitter.emit (events.js:95:17)
    at Connection.processFrame (/var/www/dhkuhnuhbnkiuh/node_modules/nodejs-websocket/Connection.js:516:9)
    at Connection.extractFrame (/var/www/dhkuhnuhbnkiuh/node_modules/nodejs-websocket/Connection.js:458:14)
    at Connection.doRead (/var/www/dhkuhnuhbnkiuh/node_modules/nodejs-websocket/Connection.js:209:23)
    at Socket.<anonymous> (/var/www/dhkuhnuhbnkiuh/node_modules/nodejs-websocket/Connection.js:52:8)
    at Socket.EventEmitter.emit (events.js:92:17)
    at emitReadable_ (_stream_readable.js:408:10)
    at emitReadable (_stream_readable.js:404:5)
    at readableAddChunk (_stream_readable.js:165:9)

感谢你的帮助!

</div>
  • 写回答

2条回答 默认 最新

  • 普通网友 2015-01-24 10:51
    关注

    Doing a request from nodejs is fairly easy, dont have to use $.ajax at all. You can use the npm request module. $.ajax is built for firing requests from the browser. But if you 'really' want to use $.ajax on node, I think you can read through this question

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog