节点Js和填充html页面

时间:2018-07-11 10:21:35

标签: html node.js

我得到了一个节点js项目,但对节点js一无所知。我查找了各种教程,并设法创建了html页面以进行注册,然后登录到该应用程序。我已连接到存储用户名和密码信息的mongo数据库(到目前为止仅存储一个表,仅存储了用户名和密码)

用户登录后,我想在“主页”页面上显示用户名,因此希望通过该用户名,但是我对如何实现这一点不太了解。 我主要来自C#背景,所以现在有点像一条鱼。

我尝试为不同的类添加分隔级别,这或多或少是如何设置.js文件的...

ApplicationName

-配置文件夹

  -database.js (inside config folder)

  -passport.js (inside config folder)

- -模型文件夹

  -routes.js (inside models folder)

   -user.js (inside models folder)
   -user.js (inside models folder)

-视图文件夹

  -Login.html (inside views folder)

   -signup.html (inside views folder)

   -Home.html (inside views folder)

   -Index.html (inside views folder)

server.js(直接在应用程序下)

我的问题是双重的。

首先,如何通过设置各个文件夹中.js文件的标签或输入值等值来与html页面进行通信。

第二,如何在.js文件之间通信/共享变量?

我可以在网上找到的示例主要是如何直接从server.js文件中处理html文件,但是由于我有这种区分,因此我不确定如何实现。我可能会错过的任何帮助或指向教程/示例的帮助都很棒。

1 个答案:

答案 0 :(得分:1)

1。我用车把来做

有了它-您可以在html中放置js变量(也可以显示#each变量),

这是把手的www:https://handlebarsjs.com/

2。要共享变量,可以使用module.exports

示例1:

从db获取值:

router.get('/', (req, res)=>{
 Recipe.find({})
  .then(recipes=>{
    res.render('admin/recipes', {recipes: recipes});
 });
});

在视图中显示它们:

{{#each recipes}}
  <tr>
    <td><img style="height:45px;" class="img-responsive" src="/uploads/{{file}}" alt=""></td>
    <td>{{title}}</td>
    <td>{{allowComments}}</td>
    <td>{{short}}</td>
    <td><a href="/admin/recipes/edit/{{id}}" class="btn btn-info">Edit</a></td>
    <td>
      <form action="/admin/recipes/{{id}}?_method=DELETE" method="post">
        <button type="submit" class="btn btn-danger">Delete</button>
      </form>
    </td>
  </tr>
{{/each}}

如果您对车把或如何设置有疑问-请随时提出-我会尽力为您提供帮助。

示例2:

const path = require('path');

module.exports = {
 uploadDir: path.join(__dirname, '../public/uploads/'),
 isEmpty: function(obj){
    for(let key in obj){
        if (obj.hasOwnProperty(key)) {
            return false;
        }
    }
    return true;
 }
};

您可以从其他文件中请求它们,例如:

const{ isEmpty, uploadDir } = require('../../helpers/upload-helper');

希望对您有帮助。

编辑:

我认为yoi sholud还检查了快递文件的这一部分:

https://expressjs.com/en/4x/api.html#res.render

http://expressjs.com/en/guide/using-template-engines.html

相关问题