所以,我正在用node/express + jade combo编写一个应用程序.
我有client.js,在客户端加载.在该文件中,我有从其他JavaScript文件调用函数的代码.我的尝试是使用
var m = require('./messages');
Run Code Online (Sandbox Code Playgroud)
为了加载messages.js(就像我在服务器端一样)的内容,然后加载该文件的调用函数.但是,require没有在客户端定义,它会抛出窗体的错误Uncaught ReferenceError: require is not defined.
这些其他JS文件也在客户端的运行时加载,因为我将链接放在网页的标题上.因此,客户端知道从这些其他文件导出的所有函数.
如何从打开服务器套接字messages.js的主client.js文件中的其他JS文件(例如)中调用这些函数?
我正在尝试使用Jade(http://jade-lang.com/)在我的页面上呈现JavaScript
我的项目在NodeJS中使用Express,eveything正常工作,直到我想在脑中编写一些内联JavaScript.即使从Jade文档中获取示例,我也无法让它工作,我错过了什么?
!!! 5
html(lang="en")
head
title "Test"
script(type='text/javascript')
if (10 == 10) {
alert("working")
}
body
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html lang="en">
<head>
<title>"Test"</title>
<script type="text/javascript">
<if>(10 == 10) {<alert working></alert></if>}
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在某些想法中,有些想法肯定会错过吗?
当使用Express for Node.js时,我注意到它输出的HTML代码没有任何换行符或标签.虽然下载速度可能更高,但在开发过程中它的可读性并不高.
如何让Express输出格式良好的HTML?
我刚开始在Mac上使用Sublime Text 2.我也刚开始在Node.js中使用Jade作为我的视图,我想知道是否有办法将Jade的语法高亮添加到Sublime Text 2中.
我是整个javascript全堆栈应用程序的新手(ish),对Angular来说是全新的,所以我希望有人能在这里直接为我记录.
在使用AngularJS编写客户端应用程序时,为什么需要使用像Jade或Handlebars这样的模板框架.
我应该说我从未使用过任何这些模板框架.所以我完全不熟悉这些优点.但是当我看看Handlebars时,它会做很多与Angular相同的事情,例如循环等.
据我所知,最有意义的是使用适当的HTML在Angular中创建模板然后执行所有模板化客户端,并将其与使用node和mongo的API第一种方法相结合.
这种混淆的原因是我在GitHub上找到的很多例子都使用了Jade,这对我来说似乎很直观.
请赐教,让我直截了当.我很想从比我更了解的人那里学习一些最佳实践.
谢谢
Jade与EJS,每种产品的优缺点是什么?每种产品的用途是什么?
是否有其他明确兼容的模板引擎是好的,为什么?
我正在尝试用Jade创作几段,但是当段落中有链接时发现很难.
我能想出的最好的,我想知道是否有办法用更少的标记来做到这一点:
p
span.
this is the start
of the para.
a(href="http://example.com") a link
span.
and this is the rest of
the paragraph.
Run Code Online (Sandbox Code Playgroud) 我在jade模板文件(index.jade)中声明的变量(config)遇到了问题,该文件未传递给javascript文件,然后导致我的javascript崩溃.这是文件(views/index.jade):
h1 #{title}
script(src='./socket.io/socket.io.js')
script(type='text/javascript')
var config = {};
config.address = '#{address}';
config.port = '#{port}';
script(src='./javascripts/app.js')
Run Code Online (Sandbox Code Playgroud)
这是我的app.js(服务器端)的一部分:
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function(){
app.set('address', 'localhost');
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
// Routes
app.get('/', function(req, res){
res.render('index', {
address: app.settings.address,
port: app.settings.port
});
});
if (!module.parent) {
app.listen(app.settings.port);
console.log("Server listening on port %d",
app.settings.port);
}
// Start my Socket.io app and pass in the socket
require('./socketapp').start(io.listen(app));
Run Code Online (Sandbox Code Playgroud)
这是我的javascript文件的一部分崩溃(public/javascripts/app.js):
(function() {
var socket = …Run Code Online (Sandbox Code Playgroud) 如何在使用带有Node.JS的Express时摆脱Jade?我想只使用普通的HTML.在其他文章中我看到人们推荐的app.register()现在已在最新版本中弃用.
我目前正在一个新项目上使用Jade.我想渲染一个页面并检查某个变量是否可用.
app.js:
app.get('/register', function(req, res){
res.render('register', {
locals: {
title: 'Register',
text: 'Register as a user.',
}
});
});
Run Code Online (Sandbox Code Playgroud)
register.jade:
- if (username)
p= username
- else
p No Username!
Run Code Online (Sandbox Code Playgroud)
我总是得到以下错误:
username is not defined
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?
pug ×10
node.js ×9
express ×5
javascript ×2
angularjs ×1
editor ×1
ejs ×1
html ×1
markup ×1
mongodb ×1
pretty-print ×1
sockets ×1
sublimetext ×1
sublimetext2 ×1