小编hoa*_*17b的帖子

express.js中路由器优先级的顺序

我想了解express.js中的顺序优先级.例如,如下面的代码

var routes = require('./routes/index');
var users = require('./routes/users');
var api = require('./routes/api');


app.use('/api', api);
app.use('/users', users);

app.use('/:name', function(req, res, next) {    
    console.log('from app.js name:', req.params.name);   

    res.render('index', {
        title: req.params.name
    });
}, routes);

app.use('/', function(req, res, next) {   
    res.render('index', {
        title: 'MainPage'
    });
});
Run Code Online (Sandbox Code Playgroud)

如果请求来自客户端localhost:3000/api/abc和localhost:3000/user/abc,则来自api和用户模块的响应.但是如果我发出像localhost:3000/myName/xyz这样的请求,app模块会返回一个响应.这种行为让我关注表达式的优先级和路由器模块的正确顺序.为什么路由器不会在动作"api","users"和参数":name"之间混淆.请让我清楚地了解快递的作用和优先级.

node.js express

17
推荐指数
2
解决办法
8613
查看次数

使用 JavaScript 在非活动选项卡中播放音频

我使用 Websocket 编写网络聊天。问题是用户切换浏览器的选项卡,我想播放声音让他们知道有人想在聊天选项卡中与他交谈。

我看到 Facebook 和 GMail 可以在非活动选项卡中的聊天中有新消息时播放“ping”。

他们是如何用 JavaScript 做到这一点的,或者有什么解决方案吗?

javascript dom-events

4
推荐指数
1
解决办法
2066
查看次数

将base64对象发送到expressjs服务器

我从画布上获得了base64对象

var imageData = canvas.toDataURL('image/png');
Run Code Online (Sandbox Code Playgroud)

我尝试通过ajax将此base64对象(imageData)发送到服务器:

var _data = {};
// set test property:
_data.avatar = imageData;
console.log(_data);
// Make an Ajax request
$.post('./setup', _data, function(result) {
console.log('result', result);
});  
Run Code Online (Sandbox Code Playgroud)

在我的nodejs服务器(仅使用表达中间件)中,我有一个简单的路由器来处理此请求

router.post('/setup', function(req, res, next) {
    console.log('setup: data', req.body.data);
    console.log('setup: check', req.body.check);
    console.log('setup avatar: ', req.body.avatar);
    res.json({
    success:true
    });
});
Run Code Online (Sandbox Code Playgroud)

实际上,它不起作用,我想知道为什么无法发送base64对象。在其他情况下,我的带有文本的json对象可以正常发送到服务器。感谢您的帮助和解决方案,将base64对象发送到expressjs服务器

ajax base64 node.js express

1
推荐指数
1
解决办法
2279
查看次数

标签 统计

express ×2

node.js ×2

ajax ×1

base64 ×1

dom-events ×1

javascript ×1