Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 定义节点js的模式路由_Javascript_Node.js_Routes - Fatal编程技术网

Javascript 定义节点js的模式路由

Javascript 定义节点js的模式路由,javascript,node.js,routes,Javascript,Node.js,Routes,我正在使用和express制作一个web聊天应用程序。我有一个关于路线的问题 我的路线是: app.get("/", function( req, res ) { res.sendfile( __dirname + "/index.html" ); }); 据我所知,这意味着所有的客户都应该进入页面访问聊天。(也许,不确定) 是否可以有这样的模式URL: app.get("/*", function( req, res ) { res.sendfile( __dirname +

我正在使用和express制作一个web聊天应用程序。我有一个关于路线的问题

我的路线是:

app.get("/", function( req, res ) {
    res.sendfile( __dirname + "/index.html" );
});
据我所知,这意味着所有的客户都应该进入页面访问聊天。(也许,不确定)

是否可以有这样的模式URL:

app.get("/*", function( req, res ) {
    res.sendfile( __dirname + "/*" );
});
这样,任何用户都可以访问任何URL上的聊天
简而言之:类似于facebook聊天。可在所有页面中访问


提前感谢

您可能需要使用如下url参数:

app.get("/:chatter",function(req,res){
    console.log("the chatter is",req.param('chatter'));
    res.sendfile( __dirname + "/index.html" );
    ...
});

您可能希望使用如下url参数:

app.get("/:chatter",function(req,res){
    console.log("the chatter is",req.param('chatter'));
    res.sendfile( __dirname + "/index.html" );
    ...
});

您可能希望使用如下url参数:

app.get("/:chatter",function(req,res){
    console.log("the chatter is",req.param('chatter'));
    res.sendfile( __dirname + "/index.html" );
    ...
});

您可能希望使用如下url参数:

app.get("/:chatter",function(req,res){
    console.log("the chatter is",req.param('chatter'));
    res.sendfile( __dirname + "/index.html" );
    ...
});
是否可以有这样的模式URL:

app.get("/:chatter",function(req,res){
    console.log("the chatter is",req.param('chatter'));
    res.sendfile( __dirname + "/index.html" );
    ...
});
是的,Express正好支持您列出的路线。文档将其称为“未命名通配符”

但是,对于您的示例,Express/Connect包含一个用于通过将URL路径组合到基本目录来服务文件的URL:

app.use(express.static(__dirname));

类似于facebook聊天。可在所有页面中访问

这不一定与路由有很大关系。您的应用程序可能需要一个路由来收集联系人列表或其他持久数据,但实际的“聊天”将单独管理

一般来说,它取决于在每个页面中包含公共内容——如果使用视图/模板,可能通过“布局”或“继承”——来显示用于输入消息的表单和用于显示聊天历史的区域。此外,大量的聊天“工作”必须在客户端完成

一个简单的例子是为多个URL提供相同的文件:

var app = require('express')();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);

app.get('/*', function (req, res) {
    res.sendfile(__dirname + '/chat.html');
});

var chat = io
    .of('/chat') // namespace
    .on('connection', function (socket) {
        socket.on('message', function (data) {
            chat.emit('message', data);
        });
    });

server.listen(3000);
在该文件中:

<div id="chat-log"></div>
<form id="chat-send">
    <input name="message">
    <input type="submit" value="Send">
</form>

<script src="/socket.io/socket.io.js"></script>
<script>
    var chatForm = document.getElementById('chat-send');
    var chatLog = document.getElementById('chat-log');

    var chatSocket = io.connect('/chat');

    chatSocket.on('message', function (data) {
        chatLog
            .appendChild(document.createElement('div'))
            .appendChild(document.createTextNode(data.text));
    });

    chatForm.onsubmit = function () {
        chatSocket.emit('message', {
            text: chatForm.message.value
        });

        chatForm.message.value = '';
        chatForm.message.focus();
        return false;
    };
</script>

var chatForm=document.getElementById('chat-send');
var chatLog=document.getElementById('chat-log');
var chatSocket=io.connect('/chat');
chatSocket.on('message',函数(数据){
聊天记录
.appendChild(document.createElement('div'))
.appendChild(document.createTextNode(data.text));
});
chatForm.onsubmit=函数(){
chatSocket.emit('message'{
文本:chatForm.message.value
});
chatForm.message.value='';
chatForm.message.focus();
返回false;
};
然后,您可以从任何地址(
GET/
GET/foo
GET/bar/baz/qux
)访问聊天室

是否可以有这样的模式URL:

app.get("/:chatter",function(req,res){
    console.log("the chatter is",req.param('chatter'));
    res.sendfile( __dirname + "/index.html" );
    ...
});
是的,Express正好支持您列出的路线。文档将其称为“未命名通配符”

但是,对于您的示例,Express/Connect包含一个用于通过将URL路径组合到基本目录来服务文件的URL:

app.use(express.static(__dirname));

类似于facebook聊天。可在所有页面中访问

这不一定与路由有很大关系。您的应用程序可能需要一个路由来收集联系人列表或其他持久数据,但实际的“聊天”将单独管理

一般来说,它取决于在每个页面中包含公共内容——如果使用视图/模板,可能通过“布局”或“继承”——来显示用于输入消息的表单和用于显示聊天历史的区域。此外,大量的聊天“工作”必须在客户端完成

一个简单的例子是为多个URL提供相同的文件:

var app = require('express')();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);

app.get('/*', function (req, res) {
    res.sendfile(__dirname + '/chat.html');
});

var chat = io
    .of('/chat') // namespace
    .on('connection', function (socket) {
        socket.on('message', function (data) {
            chat.emit('message', data);
        });
    });

server.listen(3000);
在该文件中:

<div id="chat-log"></div>
<form id="chat-send">
    <input name="message">
    <input type="submit" value="Send">
</form>

<script src="/socket.io/socket.io.js"></script>
<script>
    var chatForm = document.getElementById('chat-send');
    var chatLog = document.getElementById('chat-log');

    var chatSocket = io.connect('/chat');

    chatSocket.on('message', function (data) {
        chatLog
            .appendChild(document.createElement('div'))
            .appendChild(document.createTextNode(data.text));
    });

    chatForm.onsubmit = function () {
        chatSocket.emit('message', {
            text: chatForm.message.value
        });

        chatForm.message.value = '';
        chatForm.message.focus();
        return false;
    };
</script>

var chatForm=document.getElementById('chat-send');
var chatLog=document.getElementById('chat-log');
var chatSocket=io.connect('/chat');
chatSocket.on('message',函数(数据){
聊天记录
.appendChild(document.createElement('div'))
.appendChild(document.createTextNode(data.text));
});
chatForm.onsubmit=函数(){
chatSocket.emit('message'{
文本:chatForm.message.value
});
chatForm.message.value='';
chatForm.message.focus();
返回false;
};
然后,您可以从任何地址(
GET/
GET/foo
GET/bar/baz/qux
)访问聊天室

是否可以有这样的模式URL:

app.get("/:chatter",function(req,res){
    console.log("the chatter is",req.param('chatter'));
    res.sendfile( __dirname + "/index.html" );
    ...
});
是的,Express正好支持您列出的路线。文档将其称为“未命名通配符”

但是,对于您的示例,Express/Connect包含一个用于通过将URL路径组合到基本目录来服务文件的URL:

app.use(express.static(__dirname));

类似于facebook聊天。可在所有页面中访问

这不一定与路由有很大关系。您的应用程序可能需要一个路由来收集联系人列表或其他持久数据,但实际的“聊天”将单独管理

一般来说,它取决于在每个页面中包含公共内容——如果使用视图/模板,可能通过“布局”或“继承”——来显示用于输入消息的表单和用于显示聊天历史的区域。此外,大量的聊天“工作”必须在客户端完成

一个简单的例子是为多个URL提供相同的文件:

var app = require('express')();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);

app.get('/*', function (req, res) {
    res.sendfile(__dirname + '/chat.html');
});

var chat = io
    .of('/chat') // namespace
    .on('connection', function (socket) {
        socket.on('message', function (data) {
            chat.emit('message', data);
        });
    });

server.listen(3000);
在该文件中:

<div id="chat-log"></div>
<form id="chat-send">
    <input name="message">
    <input type="submit" value="Send">
</form>

<script src="/socket.io/socket.io.js"></script>
<script>
    var chatForm = document.getElementById('chat-send');
    var chatLog = document.getElementById('chat-log');

    var chatSocket = io.connect('/chat');

    chatSocket.on('message', function (data) {
        chatLog
            .appendChild(document.createElement('div'))
            .appendChild(document.createTextNode(data.text));
    });

    chatForm.onsubmit = function () {
        chatSocket.emit('message', {
            text: chatForm.message.value
        });

        chatForm.message.value = '';
        chatForm.message.focus();
        return false;
    };
</script>

var chatForm=document.getElementById('chat-send');
var chatLog=document.getElementById('chat-log');
var chatSocket=io.connect('/chat');
chatSocket.on('message',函数(数据){
聊天记录
.appendChild(document.createElement('div'))
.appendChild(document.createTextNode(data.text));
});
chatForm.onsubmit=函数(){
chatSocket.emit('message'{
文本:chatForm.message.value
});
chatForm.message.value='';
chatForm.message.focus();
返回false;
};
然后,您可以从任何地址(
GET/
GET/foo
GET/bar/baz/qux
)访问聊天室

是否可以有这样的模式URL:

app.get("/:chatter",function(req,res){
    console.log("the chatter is",req.param('chatter'));
    res.sendfile( __dirname + "/index.html" );
    ...
});