Javascript 通过查看nodejs的发动机把手,查看Hapijs上的角度代码

Javascript 通过查看nodejs的发动机把手,查看Hapijs上的角度代码,javascript,angularjs,node.js,handlebars.js,hapijs,Javascript,Angularjs,Node.js,Handlebars.js,Hapijs,虽然在hapi中制作api之后。我决定在hapijs的文件夹结构中创建一个视图文件来呈现html文件。我使用了hapijs上的Handlebar引擎和Vision支持库来显示html文件。当我运行普通html代码时,一切看起来都很好,但当我使用angular代码时,它会产生一些解析错误。我想可能是视图引擎把手有问题。请帮忙 当我运行node server并点击view调用的路由时,出现了一个错误 Error: Parse error on line 144: ...

虽然在hapi中制作api之后。我决定在hapijs的文件夹结构中创建一个视图文件来呈现html文件。我使用了hapijs上的Handlebar引擎和Vision支持库来显示html文件。当我运行普通html代码时,一切看起来都很好,但当我使用angular代码时,它会产生一些解析错误。我想可能是视图引擎把手有问题。请帮忙

当我运行node server并点击view调用的路由时,出现了一个错误

 Error: Parse error on line 144:
    ...             <td> {{(titleData.Success
    -----------------------^
    Expecting 'ID', 'STRING', 'NUMBER', 'BOOLEAN', 'UNDEFINED', 'NULL', 'DATA', got 'OPEN_SEXPR': Parse error on line 144:
    ...             <td> {{(titleData.Success 

我看到很多博客和github都在抱怨模板引擎手柄,所以我切换到了ejs,还有另一个模板引擎和代码可以正常工作,但有一个问题是,如果js文件包含在外部,它无法呈现js文件

这是代码,你可以看到

server.views({
            engines: { html: require('ejs') },
            // compileMode: 'sync',
            relativeTo: __dirname,
            path: __dirname + '/view',
            layoutPath: 'index',


        });

        //Routes for apis


        server.route({
            method: 'GET',
            path: '/view',
            handler: {
               view: 'index'
            }
        });

以上答案不足以满足我们的要求。因此,我正在分享一个解决方案,我们可以在HTML中外部使用js文件

var Path =require('path');
    server.views({
                engines: { html: require('ejs') },
                // compileMode: 'sync',
                relativeTo: __dirname,
                path: __dirname + '/view',
                layoutPath: 'index',


        });

        //Routes for apis

      server.route({
    method: 'GET',
    path: '/{param*}',
    handler: {
        directory: {
            path: Path.join(__dirname, 'public'),
            listing: true
        }
    }
});


        server.route({
            method: 'GET',
            path: '/view',
            handler: {
               view: 'index'
            }
        });
我遵循的目录结构示例如下:

看法

--index.html

公开的

--助手

---controller.js

server.js

server.views({
            engines: { html: require('ejs') },
            // compileMode: 'sync',
            relativeTo: __dirname,
            path: __dirname + '/view',
            layoutPath: 'index',


        });

        //Routes for apis


        server.route({
            method: 'GET',
            path: '/view',
            handler: {
               view: 'index'
            }
        });
var Path =require('path');
    server.views({
                engines: { html: require('ejs') },
                // compileMode: 'sync',
                relativeTo: __dirname,
                path: __dirname + '/view',
                layoutPath: 'index',


        });

        //Routes for apis

      server.route({
    method: 'GET',
    path: '/{param*}',
    handler: {
        directory: {
            path: Path.join(__dirname, 'public'),
            listing: true
        }
    }
});


        server.route({
            method: 'GET',
            path: '/view',
            handler: {
               view: 'index'
            }
        });