标签: ejs

Node.js模板的Jade和EJS的优缺点是什么?

Jade与EJS,每种产品的优缺点是什么?每种产品的用途是什么?

是否有其他明确兼容的模板引擎是好的,为什么?

ejs node.js pug

117
推荐指数
2
解决办法
8万
查看次数

babel-preset-react-app,正在导入“@babel/plugin-proposal-private-property-in-object”包,而不在其依赖项中声明它

我的问题是,我尝试创建一个新的 React 项目,在遇到很多漏洞问题后,我设法解决了其中一些问题,主要说明之一是添加这一行:

\n
"overrides": {\n    "@svgr/webpack": "$@svgr/webpack"\n  },\n
Run Code Online (Sandbox Code Playgroud)\n

到我的package.json文件中。

\n

完成此操作后,我必须删除我的node_modules 文件夹并重新使用npm install,现在我在输入 后收到Babelnpm start错误。

\n
"overrides": {\n    "@svgr/webpack": "$@svgr/webpack"\n  },\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试在互联网上搜索解决方案,但我发现只有一个告诉我将此插件添加到我的 devDependency 中的解决方案不起作用,而且我还找到了一个解决方案告诉我键入CI= npm run build 哪个也不起作用。

\n

这是我在输入时遇到的情况npm list @babel/plugin-proposal-private-property-in-object

\n
One of your dependencies, babel-preset-react-app, is importing the\n"@babel/plugin-proposal-private-property-in-object" package without\ndeclaring it in its dependencies. This is currently working because\n"@babel/plugin-proposal-private-property-in-object" is already in your\nnode_modules folder for unrelated reasons, but it may break at …
Run Code Online (Sandbox Code Playgroud)

javascript ejs node.js reactjs babeljs

115
推荐指数
7
解决办法
17万
查看次数

在EJS模板中检查变量是否存在的正确方法是什么(使用ExpressJS)?

在EJS github页面上,只有一个简单的例子:https: //github.com/visionmedia/ejs

<% if (user) { %>
    <h2><%= user.name %></h2>
<% } %>
Run Code Online (Sandbox Code Playgroud)

这似乎是检查是否存在名为user的变量,如果存在,则执行一些操作.呃,对吗?

我的问题是,如果用户变量不存在,为什么Node会抛出一个ReferenceError?这使得上面的例子变得毫无用处.检查变量是否存在的合适方法是什么?我是否希望使用try/catch机制并获取ReferenceError?

ReferenceError: user is not defined
    at IncomingMessage.anonymous (eval at <anonymous> (/usr/local/lib/node/.npm/ejs/0.3.1/package/lib/ejs.js:140:12))
    at IncomingMessage.<anonymous> (/usr/local/lib/node/.npm/ejs/0.3.1/package/lib/ejs.js:142:15)
    at Object.render (/usr/local/lib/node/.npm/ejs/0.3.1/package/lib/ejs.js:177:13)
    at ServerResponse.render (/usr/local/lib/node/.npm/express/1.0.7/package/lib/express/view.js:334:22)
    at Object.<anonymous> (/Users/me/Dropbox/Projects/myproject/server.js:188:9)
    at param (/usr/local/lib/node/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:146:21)
    at pass (/usr/local/lib/node/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:162:10)
    at /usr/local/lib/node/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:152:27
    at Object.restrict (/Users/me/Dropbox/Projects/myproject/server.js:94:5)
    at param (/usr/local/lib/node/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:146:21)
Run Code Online (Sandbox Code Playgroud)

我明白我可以通过在我的服务器代码中添加一个"用户"局部变量来消除这个错误,但这里的重点是我想在运行时使用你的每天if/else来检查这些变量是否存在nullcheck类型模式.不存在的变量的例外对我来说似乎很荒谬.

ejs node.js express

106
推荐指数
6
解决办法
8万
查看次数

在EJS中将变量渲染为HTML

我正在使用Node.js(Forms)的Forms库,它将在后端为我呈现一个表单,如下所示:

var signup_form = forms.create({
    username: fields.string({required: true})
    , password: fields.password({required: true})
    , confirm:  fields.password({
        required: true
        , validators: [validators.matchField('password')]
    })
    , email: fields.email()
});
var signup_form_as_html = signup_form.toHTML();
Run Code Online (Sandbox Code Playgroud)

最后一行var signup_var signup_form_as_html = signup_form.toHTML();创建了一个HTML块,看起来像这样:

<div class="field required"><label for="id_username">Username</label><input type="text" name="username" id="id_username" /></div><div class="field required"><label for="id_password">Password</label><input type="password" name="password" id="id_password" /></div><div class="field required"><label for="id_confirm">Confirm</label><input type="password" name="confirm" id="id_confirm" /></div><div class="field"><label for="id_email">Email</label><input type="text" name="email" id="id_email" /></div>
Run Code Online (Sandbox Code Playgroud)

基本上只是一长串HTML.然后我尝试使用以下代码使用EJS和Express渲染它:

res.render('signup.ejs', {
    session: loginStatus(req)
    , form: signup_form_as_html
});
Run Code Online (Sandbox Code Playgroud)

但是在渲染HTML时,我只是上面发布的字符串,而不是实际的HTML(因此是我想要的表单).有没有办法使用EJS将该字符串渲染为实际的HTML?或者我必须使用像Jade这样的东西吗?

ejs node.js express

89
推荐指数
2
解决办法
8万
查看次数

我可以在EJS模板中使用条件语句(在JMVC中)吗?

如果是,语法是什么?我的目标是在有多个时,在'评论'这个词的前面添加's'.在JMVC应用程序的jQuery.ejs模板中.以下休息.我找不到条件的任何文档......

<%=commentsNumber%> comment<% if (commentsNumber > 1) { %> s <% } %>
Run Code Online (Sandbox Code Playgroud)

ejs conditional-statements

87
推荐指数
6
解决办法
13万
查看次数

如何使用Express/Node.JS创建可在所有视图中访问的全局变量?

好的,所以我使用Jekyll构建了一个博客,您可以在文件中定义_config.yml可在所有模板/布局中访问的变量.我目前正在使用带有EJS模板和ejs-locals的Node.JS/Express(用于局部 /布局.我希望做一些类似于全局变量的东西,如果有人熟悉Jekyll的话.我有类似的变量网站的标题,(而不是网页标题),作者/公司名称,在我的所有网页上保持不变.site.title_config.yml

这是我目前正在做的一个例子:

exports.index = function(req, res){
    res.render('index', { 
        siteTitle: 'My Website Title',
        pageTitle: 'The Root Splash Page',
        author: 'Cory Gross',
        description: 'My app description',
        indexSpecificData: someData
    });
};

exports.home = function (req, res) {
    res.render('home', {
        siteTitle: 'My Website Title',
        pageTitle: 'The Home Page',
        author: 'Cory Gross',
        description: 'My app description',
        homeSpecificData: someOtherData
    });
};
Run Code Online (Sandbox Code Playgroud)

我希望能够在一个地方定义像我的网站的标题,描述,作者等变量,并让他们通过EJS我的布局/模板访问,而无需通过他们的选项,每次调用res.render.有没有办法做到这一点,仍然允许我传递特定于每个页面的其他变量?

template-engine ejs node.js express sails.js

75
推荐指数
4
解决办法
9万
查看次数

错误:找不到模块'ejs'

这是我的完整错误:

Error: Cannot find module 'ejs'
    at Function._resolveFilename (module.js:317:11)
    at Function._load (module.js:262:25)
    at require (module.js:346:19)
    at View.templateEngine (/Users/shamoon/local/node/lib/node_modules/express/lib/view/view.js:133:38)
    at Function.compile (/Users/shamoon/local/node/lib/node_modules/express/lib/view.js:65:17)
    at ServerResponse._render (/Users/shamoon/local/node/lib/node_modules/express/lib/view.js:414:18)
    at ServerResponse.render (/Users/shamoon/local/node/lib/node_modules/express/lib/view.js:315:17)
    at /Users/shamoon/Sites/soldhere.in/app.js:26:7
    at callbacks (/Users/shamoon/local/node/lib/node_modules/express/lib/router/index.js:272:11)
    at param (/Users/shamoon/local/node/lib/node_modules/express/lib/router/index.js:246:11)
Run Code Online (Sandbox Code Playgroud)

我的源代码也很简单:

var express = require('express');

var app = module.exports = express.createServer();

// Configuration

app.configure(function(){
  app.use(express.bodyParser());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

app.set('view engine', 'ejs');
app.set('view options', {
    layout: false
});

app.get('/', function(req, res) {
  res.render('index', {
    message : 'De groeten'
  });
});

app.listen(3000);
console.log("Express server listening …
Run Code Online (Sandbox Code Playgroud)

ejs node.js express

73
推荐指数
8
解决办法
9万
查看次数

Express和ejs <%=呈现JSON

在我的index.ejs中我有这个代码:

var current_user = <%= user %>
Run Code Online (Sandbox Code Playgroud)

在我的节点中我有

app.get("/", function(req, res){
    res.locals.user = req.user
    res.render("index")
})
Run Code Online (Sandbox Code Playgroud)

但是,在我获得的页面上

var current_user = [object Object]
Run Code Online (Sandbox Code Playgroud)

如果我写

var current_user = <%= JSON.stringify(user) %>
Run Code Online (Sandbox Code Playgroud)

我获得:

var current_user = {&quot;__v&quot;:0,&quot;_id&quot;:&quot;50bc01938f164ee80b000001&quot;,&quot;agents&quot;:...
Run Code Online (Sandbox Code Playgroud)

有没有办法传递一个JS可读的JSON ?

javascript json ejs express

72
推荐指数
2
解决办法
6万
查看次数

Node.js - EJS - 包括部分

我正在尝试将Embedded Javascript渲染器用于节点:https: //github.com/visionmedia/ejs

我想知道如何在.ejs视图文件中包含另一个视图文件(部分).

ejs node.js

57
推荐指数
4
解决办法
9万
查看次数

在EJS模板引擎中,如何"包含"页脚?

假设我保存了一个页脚的snipplet.如何在我当前的模板中"包含"该内容?

html javascript templates ejs

46
推荐指数
5
解决办法
6万
查看次数