gpt4 book ai didi

javascript - Express Angular Node 模板渲染上的 "Cannot find module ' html ' error"

转载 作者:行者123 更新时间:2023-11-28 05:20:46 24 4
gpt4 key购买 nike

我正在使用 ui-router 为 AngularJS 构建一个 Web 应用程序,以通过 $stateProvider 处理我的路由,以便仅在 ui 中呈现各种状态-查看

我有一个 server.js 文件,希望渲染 Web 应用程序将基于的初始脚手架(顶部导航、页脚等),并且我希望所有请求加载此模板并使用模板填充每个单独的页面。

但是,我不断收到错误:找不到模块“html”

我已经研究过 stackoverflow 并尝试安装 EJS,以便我可以渲染我的 index.html 页面,但它仍然不起作用。

提供静态 html 模板并让 Angular ui-router 完成其余路由的最佳方式是什么?

<小时/>

这是两个文件:

server.js

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var routes = require('server/routes');

// Set Port
var PORT = process.env.PORT || 3000;

// Rendering configuration
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');

app.use(bodyParser.json());

routes(app);

app.get('/*', function(req,res) {
res.render('index.html');
});

app.listen(PORT, function() {
console.log('Server running on ' + PORT)
});

config.js

import angular from 'angular';
import uiRouter from 'angular-ui-router';

// Factories
import todoFactory from 'factories/todo-factory';

// Controllers
import todosController from 'controllers/todosController';
import profileController from 'controllers/profileController';
import signupController from 'controllers/signupController';
import signinController from 'controllers/signinController';


const app = angular.module('airporter', [uiRouter, todoFactory.name]);

app.config(($stateProvider, $urlRouterProvider, $locationProvider) => {
$urlRouterProvider.otherwise('/');

$stateProvider
// Homepage
.state('home', {
url: '/',
templateUrl: 'views/index.html',
})

// Sign Up
.state('signup', {
url: '/signup',
templateUrl: 'views/signup/signup.html',
controller: signupController
})

// Sign In
.state('signin', {
url: '/signin',
templateUrl: 'views/signin/signin.html',
controller: signinController
})

//
.state('profile', {
url: '/profile',
templateUrl: 'views/profile/profile.html',
controller: profileController,
resolve: {
// logincheck: checkLoggedin
// if the following dependencies are successfully resolved you can access profile
}
})
.state('todos', {
url: '/todos',
templateUrl: 'views/todos/todos.html',
controller: todosController
})
.state('about', {
url: '/about',
templateUrl: 'views/about/about.html'
});

$locationProvider.html5Mode(true);

});

export default app;

最佳答案

为了给大家一个引用,在MEANJS中路由/*定义为:

app.get('/*', function(req,res) {
res.render('index'); // without extension
});

就像在您的配置中 index.html 被解释为模块名称。尝试删除'index'

的文件扩展名

关于javascript - Express Angular Node 模板渲染上的 "Cannot find module ' html ' error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40580138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com