Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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
Node.js Nodejs、koa路由器、koa视图(细枝)返回“;“未找到”;_Node.js_Koa2_Koa Router - Fatal编程技术网

Node.js Nodejs、koa路由器、koa视图(细枝)返回“;“未找到”;

Node.js Nodejs、koa路由器、koa视图(细枝)返回“;“未找到”;,node.js,koa2,koa-router,Node.js,Koa2,Koa Router,所以我开始了我的新项目,我的一个朋友建议我放弃PHP,让Nodejs尝试一下RejectionDB 我安装了所有东西,没有路由,它工作正常。但是一旦我添加了路由,我得到:未找到,控制台上没有错误 软件包: "dependencies": { "keygrip": "^1.0.1", "koa": "^2.3.0", "koa-controller": "^1.1.0", //Not used - discontinued ? "koa-response-tim

所以我开始了我的新项目,我的一个朋友建议我放弃PHP,让Nodejs尝试一下RejectionDB

我安装了所有东西,没有路由,它工作正常。但是一旦我添加了路由,我得到:
未找到
,控制台上没有错误

软件包

  "dependencies": {
    "keygrip": "^1.0.1",
    "koa": "^2.3.0",
    "koa-controller": "^1.1.0", //Not used - discontinued ?
    "koa-response-time": "^2.0.0",
    "koa-router": "^7.2.1",
    "koa-views": "^6.0.2",
    "rethinkdbdash": "^2.3.29",
    "socketio": "^1.0.0",
    "twig": "^1.10.5"
  }
var Koa = require('koa'),
      Router = require('koa-router'),
      keygrip = require("keygrip"),
      r = require('rethinkdbdash')(),
      views = require('koa-views'),
      Twig = require('twig'),
      twig = Twig.twig,
      app = new Koa(), // Init Koa
      router = new Router(); //Init router

//configure VIEWS
app.use(views(__dirname + '/views/', { extension: 'twig', map: {twig: 'twig' }}))

//Initialize controllers
var ot = require(__dirname+'/controllers/ot.js');

//app.keys = ['im a newer secret', 'i like turtle'];

router
  .get('/', async function (ctx, next) {

      async (ctx, next) => {
        /*ctx.state = {
          session: this.session,
          title: 'app'
        };*/
        ctx.render('index', {
            message: 'Hello world! <3'
        });
      };
  });

app
    .use(router.routes())
    .use(router.allowedMethods());
app.listen(3000);
console.log('server listen on http://localhost:3000');
var ot = function() {};

ot.prototype = {
    'index' : async function(ctx, next) {

        ctx.state = {
            session: this.session,
            title: 'app'
        };

        await ctx.render('index', {
            message: 'Hello world! <3'
        });

        console.log(ctx);

    }
};

module.exports = new ot();
server.js

  "dependencies": {
    "keygrip": "^1.0.1",
    "koa": "^2.3.0",
    "koa-controller": "^1.1.0", //Not used - discontinued ?
    "koa-response-time": "^2.0.0",
    "koa-router": "^7.2.1",
    "koa-views": "^6.0.2",
    "rethinkdbdash": "^2.3.29",
    "socketio": "^1.0.0",
    "twig": "^1.10.5"
  }
var Koa = require('koa'),
      Router = require('koa-router'),
      keygrip = require("keygrip"),
      r = require('rethinkdbdash')(),
      views = require('koa-views'),
      Twig = require('twig'),
      twig = Twig.twig,
      app = new Koa(), // Init Koa
      router = new Router(); //Init router

//configure VIEWS
app.use(views(__dirname + '/views/', { extension: 'twig', map: {twig: 'twig' }}))

//Initialize controllers
var ot = require(__dirname+'/controllers/ot.js');

//app.keys = ['im a newer secret', 'i like turtle'];

router
  .get('/', async function (ctx, next) {

      async (ctx, next) => {
        /*ctx.state = {
          session: this.session,
          title: 'app'
        };*/
        ctx.render('index', {
            message: 'Hello world! <3'
        });
      };
  });

app
    .use(router.routes())
    .use(router.allowedMethods());
app.listen(3000);
console.log('server listen on http://localhost:3000');
var ot = function() {};

ot.prototype = {
    'index' : async function(ctx, next) {

        ctx.state = {
            session: this.session,
            title: 'app'
        };

        await ctx.render('index', {
            message: 'Hello world! <3'
        });

        console.log(ctx);

    }
};

module.exports = new ot();

Total nodejs noob,我非常感谢您的帮助:)

因此这应该可以工作:对于index.js将其更改为:

'use strict';

const Koa = require('koa');
const Router = require('koa-router');
const keygrip = require("keygrip");
// const r = require('rethinkdbdash')(); // not needed in this code at the moment
const views = require('koa-views');
const Twig = require('twig');
const twig = Twig.twig;

const app = new Koa(); // Init Koa
const router = new Router(); //Init router

//configure VIEWS
app.use(views(__dirname + '/views/', { extension: 'twig', map: {twig: 'twig' }}))

//Initialize controllers
var ot = require(__dirname+'/controllers/ot.js');

app.keys = ['im a newer secret', 'i like turtle']; // not needed in this code at the moment

router
  .get('/', async function (ctx, next) {
      await ctx.render('index', {
          message: 'Hello world! <3'
      });
  });

// routes from ot.js
router.get('/ot', ot.index);

app
    .use(router.routes())
    .use(router.allowedMethods());
app.listen(3000);
console.log('server listen on http://localhost:3000');
我的示例视图/索引.twig

<!DOCTYPE html>
<html>
    <head>
        <title>My Webpage</title>
    </head>
    <body>
        <h1>My Webpage</h1>
        {{ message }}
    </body>
</html>

我的网页
我的网页
{{message}}
这两条路由
localhost:3000/
localhost:3000/ot
现在都可以工作了。此处缺少RejectionDB部分,因为您没有提供任何示例代码。希望有帮助