Javascript Node Js-确定请求是来自移动设备还是非移动设备

Javascript Node Js-确定请求是来自移动设备还是非移动设备,javascript,node.js,restify,Javascript,Node.js,Restify,我对node js还是新手。对于如何使用node js识别来自客户端的请求来自移动或非移动设备,是否有任何解决方法或方法?因为我现在要做的是根据设备类型(移动/桌面)限制对特定API的访问。我在服务器端使用restify。谢谢。@H.Mustafa,检测客户端是否正在使用移动设备的基本方法是匹配用户代理中的一组特定字符串 function detectMob() { const toMatch = [ /Android/i, /webOS/i,

我对node js还是新手。对于如何使用node js识别来自客户端的请求来自移动或非移动设备,是否有任何解决方法或方法?因为我现在要做的是根据设备类型(移动/桌面)限制对特定API的访问。我在服务器端使用restify。谢谢。

@H.Mustafa,检测客户端是否正在使用移动设备的基本方法是匹配
用户代理中的一组特定字符串

function detectMob() {
    const toMatch = [
        /Android/i,
        /webOS/i,
        /iPhone/i,
        /iPad/i,
        /iPod/i,
        /BlackBerry/i,
        /Windows Phone/i
    ];

    return toMatch.some((toMatchItem) => {
        return navigator.userAgent.match(toMatchItem);
    });
}
(参考资料:)


在客户端设备中运行此代码片段。如果返回的结果为
true
,则您知道它是一个移动设备,而不是台式机/笔记本电脑。希望这有帮助。

我建议的方法是使用npm软件包,因为从长远来看,npm软件包更可靠

var http=require('http'))
,useragent=require('express-useragent');
var srv=http.createServer(函数(req,res){
var source=req.headers['user-agent']
var ua=useragent.parse(源代码);
//一个布尔值,告诉您请求
//来自移动设备
var isMobile=ua.isMobile
//多做点什么
});
srv.listen(3000);
它也适用于expressJS:

var express=require('express');
var-app=express();
var useragent=require('express-useragent');
app.use(useragent.express());
app.get('/',函数(req,res){
res.send(req.useragent.isMobile);
});
app.listen(3000);

您可以使用
npm
软件包获取访问您网站的每个设备的详细信息-查看此链接,它应该会有所帮助!