Попытка визуализировать другое представление между мобильным устройством и сетью из Express JS - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь сделать разные представления для каждого типа устройства.Если это правда, мобильный будет отображаться, mobile.ejs файл, если не мобильный, 'pages / index.js' .

В настоящее время мой файл index.js отвечает за настройку из Express.

Express:

const express = require('express')
const path = require('path')
const req = require('request')
const bodyParser = require('body-parser')
const PORT = process.env.PORT || 5000
const browser = require('browser-detect') 
const router = express.Router()

if(browser) {
  router.get('/', req => {
    const result = browser(req.headers['user-agent']);

    resultadoMobile = (result.mobile)

      if (resultadoMobile) {
        resultPath = "pages/mobile";
        return resultPath;
      }
      else {
        resultPath = "pages/index";
        return resultPath;
      }
  })

}

express() 

  .use(express.static(path.join(__dirname, 'public')))
  .set('views', path.join(__dirname, 'views'))
  .set('view engine', 'ejs')
  .use (bodyParser.urlencoded({ extended: true }))
  .get('/', (req, res) => res.render(resultPath))
  .listen(PORT, () => console.log(`Servidor iniciado em  ${ PORT }`))

Итак, подведем итог:

Мне нужно использовать browser-Detection для определения мобильности, если true, рендеринг 'pages /mobile.ejs', если не ' pages / index.ejs '.

Ответ с сервера:

ReferenceError: **resultPath** is not defined
    at express.use.set.set.use.get (\path\**\\index.js:33:38)
    at Layer.handle [as handle_request] (\path\**\\node_modules\express\lib\router\layer.js:95:5)
    at next (\path\**\\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (\path\**\\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (\path\**\\node_modules\express\lib\router\layer.js:95:5)
    at \path\**\\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (\path\**\\node_modules\express\lib\router\index.js:335:12)
    at next (\path\**\\node_modules\express\lib\router\index.js:275:10)
    at urlencodedParser (\path\**\\node_modules\body-parser\lib\types\urlencoded.js:91:7)
    at Layer.handle [as handle_request] (\path\**\\node_modules\express\lib\router\layer.js:95:5)

1 Ответ

0 голосов
/ 31 января 2019

resultPath переменная не существует, и она может не понадобиться.

Скорее всего, она должна быть:

.get('/', (req, res) => {
  const isMobile = browser(req.headers['user-agent']).mobile;
  res.render(isMobile ? "pages/mobile" : "pages/index");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...