繁体   English   中英

使用 jquery 在 node.js 服务器中解析 json 给出 404 错误

[英]Parsing json in node.js server with jquery gives 404 error

我正在使用 node.js 和 socket.io 构建一个简单的 Web 应用程序,这是我第一次使用这种技术。

我有一个发出事件的服务器文件和一个响应的客户端文件,另外还有一个名为 roomParser.js 的文件,用于解析同一文件夹中的 JSON 文件并初始化可用房间。 该文件看起来像这样

    let select= document.getElementsByTagName('select')[0];

$.getJSON('rooms.json', function(data) {
    alert(data);
});
select.innerHTML="";

/*
for(let i=0; i<rooms.length; i++){
    select.innerHTML+="<options value="+rooms[i]+">"+rooms[i]+"</options>";
}*/

即使rooms.json 文件与我的roomParser.js 位于同一文件夹中,我仍然收到404 错误,告诉我该文件尚未找到。

这里还有我的客户端和服务器文件,如果它们在某种程度上有用的话

服务器

const express = require("express");
const app = express();
var server = require('http').createServer(app);
var io=require('socket.io')(server);
var bodyParser = require('body-parser')

var userlist= new Array();

app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: false }))


app.get('/', function (req, res) {
    res.sendFile(__dirname + '/public/views/index.html');
});



io.on('connection', function(socket){
    console.log('user connected')
    socket.on('connection tried', function (name) {
        if(!find(name)){
            userlist.push(name);
            socket.broadcast.emit('connection message', name + "has connected");
            console.log(name);
        }
        else
            socket.emit('RegistrationErr','username');

    })
});

function find(name){
    for( let i=0; i<userlist.length; i++){
        if(userlist[i]==name)
            return true;
    }
    return false;
}

server.listen(3000);

客户

$(function () {
    var socket = io()


    $('#formElem').submit(function (e) {
        e.preventDefault();

        socket.emit('connection tried', $('#name').val());
        return false;
    })

    socket.on('RegistrationErr', function (error) {
        console.log(error)
    })




});

您应该首先使用 'fs' 读取文件并将 JSON 数据分配给一个变量,然后继续使用它,请参阅: https : //nodejs.org/dist/latest-v6.x/docs/api/fs.html# fs_fs_readfile_file_options_callback

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM