Синтаксический анализ json на node.js сервере с jquery дает ошибку 404 - PullRequest
1 голос
/ 15 января 2020

Я использую node.js и socket.io для создания простого веб-приложения. Впервые я использую такую ​​технологию.

У меня есть события, генерирующие файл сервера, и ответ клиента, плюс У меня есть файл с именем 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)
    })




});

1 Ответ

0 голосов
/ 15 января 2020

Сначала вы должны прочитать файл с помощью 'fs' и присвоить переменную JSON, а затем продолжить, см .: https://nodejs.org/dist/latest-v6.x/docs/api/fs.html#fs_fs_readfile_file_options_callback

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...