2 回答
TA贡献1752条经验 获得超4个赞
要渲染视图,您只需在expressjs中指定一个端点并仅调用该端点
您不应该尝试调用.ejs文件位置
示例:在这段代码中login.ejs会自动在后台渲染,服务器库会做这件事,res.render('login')会自动调用login.ejs
router.get('/home', function(req, res, next) {
res.render('login');
});
您的超链接应该单独调用路由器映射端点
<a href="/home"><li> LOGIN </li></a>
一旦你决定使用EJS,出于UI设计的目的,如果单独给你UI设计部分,那么你可以做一个虚拟代码来渲染一个带有固定数据的EJS,你不必用DB运行整个网站
例如:假设有一个数据将渲染 EJS,要使用虚拟数据渲染,您可以这样做
从正在尽自己职责的开发人员那里获取数据并执行此代码
router.get('/home', function(req, res, next) {
var data = {"name": "Emmanuel"}
res.render('login', data);
});
正如你所看到的,数据是直接编码的temporary
TA贡献1776条经验 获得超12个赞
这是一个相当老的问题,但我在为类似问题寻找自己的解决方案时发现了OPs帖子。
// this link should take me to the 'new post' page which is rendered only from an ejs template (no HTML) and has a matching endpoint on my express router obj as 'new'
<a href="new" class="new-post-link">new post</a>
// clicking this link would move the user to the /new endpoint and would render the 'new post' page upon clicking the link
<a href="new" class="new-post-link">new post</a>
// for OP's specific problem:
// original
<button id="loginBtn">
<a href="views/login.ejs"><LI> LOGIN </LI></a>
</button>
// solution
<button id="loginBtn">
<a href="login"><LI> LOGIN </LI></a>
</button>
我希望它能帮助某人。
- 2 回答
- 0 关注
- 110 浏览
添加回答
举报