在没有模板引擎的情况下使用express

发布于 2024-12-03 07:03:02 字数 207 浏览 2 评论 0原文

是否可以创建一个express(节点)应用程序,而无需使用jade或ejs等模板引擎。我在大学有一个大型的最后一年项目,我将使用 node、express、socket.io、mongoDB 和 websockets。我不想给自己增加学习模板语言的负担!

快递默认使用玉石 -t, --template 添加模板支持 (jade|ejs)。默认=玉

Is it possible to create an express (node) application without the need for a template engine such as jade or ejs. I've got a large final year project at university and i'm going to be using node, express, socket.io, mongoDB and websockets. I don't want to burden myself with having to learn a templating language too!

By default express uses jade
-t, --template add template support (jade|ejs). default=jade

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

小忆控 2024-12-10 07:03:02

是否可以创建一个快速(节点)应用程序,而不需要诸如jade或ejs之类的模板引擎

是的,是的。您可以只使用 HTML。或者直接使用 EJS。 EJS 是 HTML 的超集。

我不想给自己增加学习模板语言的负担!

您可以在一天之内学会一门模板语言。它真的会对你有帮助。去做就对了。这是值得的。

Is it possible to create an express (node) application without the need for a template engine such as jade or ejs

Yes it is. You can just use HTML. Or just use EJS. EJS is a superset of HTML.

I don't want to burden myself with having to learn a templating language too!

You can learn a templating language in a day. It's really going to help you. Just do it. It's worth it.

暗藏城府 2024-12-10 07:03:02

如果您只想避免学习另一种模板语言,您可能想尝试一下下划线模板。它们只是 javascript,无论如何你都会学习它们。

documentcloud.github.com/underscore/#template

您可以通过以下方式进行设置:

app.register('.html', {
    compile: function(str, options){
        var compiled = require('underscore').template(str);
        return function(locals) {
            return compiled(locals);
        };
    }
});

If you only want to avoid learning another template language, you might want to give underscore templates a try. They're just javascript, which you're going to be learning anyway.

documentcloud.github.com/underscore/#template

You can set it up with:

app.register('.html', {
    compile: function(str, options){
        var compiled = require('underscore').template(str);
        return function(locals) {
            return compiled(locals);
        };
    }
});
网白 2024-12-10 07:03:02

最简单的方法是将默认的 app.get('/')... 行替换为以下内容。
然后将所有的魔法放在index.html 中。这至少对于单页应用程序来说效果很好。

与以下

app.get('/', function(request, response) {
var readFile = "index.html";
var fileContents = fs.readFileSync(readFile);

response.send(fileContents.toString());
});

Easiest way to do this would be to replace the default app.get('/')... line with the following.
Then put all the magic in index.html. This will at least work quite well for a single page app.

with the following

app.get('/', function(request, response) {
var readFile = "index.html";
var fileContents = fs.readFileSync(readFile);

response.send(fileContents.toString());
});
一人独醉 2024-12-10 07:03:02

现在最好的选择是使用 ejs(引擎)并将其配置为接受和渲染 html:

app.set('views', path.join(*__dirname*, 'views'))
app.set('view engine', 'ejs'); // template engine
app.engine('html', require('ejs').renderFile); // turn engine to use html

注意:所有视图或模板都具有 .html 扩展名。

The best option right now is to use ejs (engine) and configure it to accept and render html:

app.set('views', path.join(*__dirname*, 'views'))
app.set('view engine', 'ejs'); // template engine
app.engine('html', require('ejs').renderFile); // turn engine to use html

Note: All your views or templates have the .html extension.

薄情伤 2024-12-10 07:03:02

有更简单的方法可以在没有模板引擎的情况下创建视图。最基本的方法是使用 模板文字的 ES6 方法res.send(),在 Express 应用中。这样,您可以根据用例注入静态模板或动态模板。

静态模板

app.get('/', (req, res, next) => {
  const template = `
   <div>Hello World</div>
  `;
  res.send(template);
});

动态模板

从字面上看,使用模板文字和不同的路由,您可以根据页面的独特需求使用动态创建的模板注入和样式来创建默认模板。您还可以模块化您的应用程序以实现代码可重用性。

欲了解更多信息,请访问:
源代码 |
演示

PS:通过这种方式,您的应用程序所需的依赖项会减少[上面的 POC只有 2 个依赖项,即:Nodemon 和 Express],因此降低了破坏更改的风险并经过了时间测试的应用程序。不需要 EJS 或任何其他模板引擎,不需要公共文件夹,并且技术上不需要 HTML5 和 CSS 文件。这就是 JavaScript 的美妙之处。

There is much simpler way to create a view without templating engine. The most basic way to do it is using ES6 method of template literal and res.send(), in your Express app. With this, you can inject a static template or dynamic template based on use cases.

Static Template

app.get('/', (req, res, next) => {
  const template = `
   <div>Hello World</div>
  `;
  res.send(template);
});

Dynamic Template

Literally using template literal and different route, you can create a default template with dynamically created template injection and styling based on a page's unique need. You may also modularize your application for code reusability.

For more info visit:
Source Code |
Demo

PS: In this manner, you have lesser dependencies needed for your application [The POC above only has 2 dependencies, ie: Nodemon and Express], hence reducing the risk of breaking changes and have time tested application. No EJS or any other templating engine needed, No Public folder needed and No HTML5 and CSS files needed technically. That's the beauty of the JavaScript.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文