使用express和套接字创建聊天客户端。但是,当我尝试连接到静态文件时,我得到了404。
Server.js
var jade = require('jade');
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
io.on('connection', function() {
'use strict';
socket.on('setPseudo', function(data) {
socket.set('pseudo', data);
});
socket.on('message', function(message) {
socket.get('pseudo', function(error, name) {
var data = {
'message': message,
pseudo: name
};
socket.broadcast.emit('message', data);
console.log("user " + name + " send this : " + message);
});
});
});
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.set("view options", {
layout: false
});
app.use(express.static(__dirname + '/public'));
app.get('/', function(req, res) {
'use strict';
res.render('home.jade');
});
server.listen(4000);
为了使我的应用程序正常工作,我需要连接到my / public文件夹中的script.js文件。但是服务器似乎无法找到它。
使用jade文件更新:
doctype html
html
head
title le Chat
script(src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js')
script(src="/socket.io/socket.io.js")
script(src="public/script.js")
body
div.container
header
h1 le Chat Meow
input(type='text')#pseudoInput
button#pseudoSet Set Pseudo
div#chatEntries
div#chatControls
input(type='text')#messageInput
button#submit Send
以及文件夹结构:
-public > script.js
-views > home.jade
-server.js
答案 0 :(得分:0)
将script(src="public/script.js")
更改为script(src="script.js")
,因为您的公用文件夹是静态文件的根目录,因此您无需将其放在html文件的路径中
答案 1 :(得分:0)
因为有人将你的另一个关于console.readLine的最新问题标记为一个dublicate事件,但显然我不会在这里回答它。
显然,console.readLine在IDE中不起作用,例如eclipse。 您必须在实际控制台中运行该程序才能使该代码生效。 建议使用缓冲的阅读器。