我得到了一个节点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文件,但是由于我有这种区分,因此我不确定如何实现。我可能会错过的任何帮助或指向教程/示例的帮助都很棒。
答案 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还检查了快递文件的这一部分: