Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExpressJS-jade中我的布局上无编译错误_Javascript_Node.js_Express_Less_Pug - Fatal编程技术网

Javascript ExpressJS-jade中我的布局上无编译错误

Javascript ExpressJS-jade中我的布局上无编译错误,javascript,node.js,express,less,pug,Javascript,Node.js,Express,Less,Pug,我在Express中设置了在服务器端编译LESS,并且它在jade中正常工作,而在布局中没有添加LESS 我的终端: if(err) throw err; ^ Error: ENOENT, open '/Users/lijung/Documents/Project/clubond/public/stylesheets/left_navigator.less' /** * Module dependencies. */ var express = requi

我在Express中设置了在服务器端编译LESS,并且它在jade中正常工作,而在布局中没有添加LESS

我的终端:

if(err) throw err;
                ^
Error: ENOENT, open '/Users/lijung/Documents/Project/clubond/public/stylesheets/left_navigator.less'
/**
 * Module dependencies.
 */

var express = require('express')
    , path = require('path')
    , club = require('./routes/club')
    , less = require('less')
    , fs = require('fs');

var app = module.exports = express.createServer();

// Configuration

app.configure(function(){
    var RedisStore = require('connect-redis')(express);
    app.use(express.cookieParser());
    app.use(express.session({ secret: "william", store: new RedisStore }));
    app.use(express.logger());
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.set('view options', { layout: false });
    app.use(express.static(path.join(__dirname, 'public')));
});


app.configure('development', function(){
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
    app.use(express.errorHandler()); 
});

// Routes
//index-in-layout
app.get('/club/:id', club.chkExist, club.getDataById, site.clubPage);

//compile less
app.get("*.less", function(req, res) {
    var path = __dirname + req.url;
    fs.readFile(path, "utf8", function(err, data) {
        if(err) throw err;
        less.render(data, function(err, css) {
    if (err) throw err;
        res.header("Content-type", "text/css");
        res.send(css);
     });
   });
}); 


app.listen(3000);
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);  
extends ./index_in_layout

block script

    script(src='/javascripts/new_club.js')
    script(src='/javascripts/new_bond.js')
    script(src='/javascripts/new_event.js')
    script(src='/javascripts/popup.js')
    script(src='/javascripts/list_clubs.js')
    script(src='/javascripts/list_bonds.js')
    script(src='/javascripts/list_events.js')
    link(rel='stylesheet', type='text/css', href='/public/stylesheets/test.less')


block body  
app.js:

if(err) throw err;
                ^
Error: ENOENT, open '/Users/lijung/Documents/Project/clubond/public/stylesheets/left_navigator.less'
/**
 * Module dependencies.
 */

var express = require('express')
    , path = require('path')
    , club = require('./routes/club')
    , less = require('less')
    , fs = require('fs');

var app = module.exports = express.createServer();

// Configuration

app.configure(function(){
    var RedisStore = require('connect-redis')(express);
    app.use(express.cookieParser());
    app.use(express.session({ secret: "william", store: new RedisStore }));
    app.use(express.logger());
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.set('view options', { layout: false });
    app.use(express.static(path.join(__dirname, 'public')));
});


app.configure('development', function(){
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
    app.use(express.errorHandler()); 
});

// Routes
//index-in-layout
app.get('/club/:id', club.chkExist, club.getDataById, site.clubPage);

//compile less
app.get("*.less", function(req, res) {
    var path = __dirname + req.url;
    fs.readFile(path, "utf8", function(err, data) {
        if(err) throw err;
        less.render(data, function(err, css) {
    if (err) throw err;
        res.header("Content-type", "text/css");
        res.send(css);
     });
   });
}); 


app.listen(3000);
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);  
extends ./index_in_layout

block script

    script(src='/javascripts/new_club.js')
    script(src='/javascripts/new_bond.js')
    script(src='/javascripts/new_event.js')
    script(src='/javascripts/popup.js')
    script(src='/javascripts/list_clubs.js')
    script(src='/javascripts/list_bonds.js')
    script(src='/javascripts/list_events.js')
    link(rel='stylesheet', type='text/css', href='/public/stylesheets/test.less')


block body  
我将布局放在名为“索引”的视图中

!!! 5
html
head
    title= title
    script(src='/javascripts/jquery.min.js')
    link(rel="stylesheet", href="/stylesheets/index.css")
    link(rel="stylesheet",type='text/css', href="/public/stylesheets/left_navigator.less")
    script(src='/javascripts/index_in.js')
    block script
body
索引。jade:

if(err) throw err;
                ^
Error: ENOENT, open '/Users/lijung/Documents/Project/clubond/public/stylesheets/left_navigator.less'
/**
 * Module dependencies.
 */

var express = require('express')
    , path = require('path')
    , club = require('./routes/club')
    , less = require('less')
    , fs = require('fs');

var app = module.exports = express.createServer();

// Configuration

app.configure(function(){
    var RedisStore = require('connect-redis')(express);
    app.use(express.cookieParser());
    app.use(express.session({ secret: "william", store: new RedisStore }));
    app.use(express.logger());
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.set('view options', { layout: false });
    app.use(express.static(path.join(__dirname, 'public')));
});


app.configure('development', function(){
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
    app.use(express.errorHandler()); 
});

// Routes
//index-in-layout
app.get('/club/:id', club.chkExist, club.getDataById, site.clubPage);

//compile less
app.get("*.less", function(req, res) {
    var path = __dirname + req.url;
    fs.readFile(path, "utf8", function(err, data) {
        if(err) throw err;
        less.render(data, function(err, css) {
    if (err) throw err;
        res.header("Content-type", "text/css");
        res.send(css);
     });
   });
}); 


app.listen(3000);
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);  
extends ./index_in_layout

block script

    script(src='/javascripts/new_club.js')
    script(src='/javascripts/new_bond.js')
    script(src='/javascripts/new_event.js')
    script(src='/javascripts/popup.js')
    script(src='/javascripts/list_clubs.js')
    script(src='/javascripts/list_bonds.js')
    script(src='/javascripts/list_events.js')
    link(rel='stylesheet', type='text/css', href='/public/stylesheets/test.less')


block body  
终端不断告诉我
错误:enoint
我的左导航器。less无法打开。我将test.less和navigator.less放在同一个目录中,这毫无意义


服务器端的更少让我抓狂。谁能帮帮我吗。谢谢

除非我遗漏了什么,否则你真的不需要通过这些英雄行为来减少工作量:-)一般来说,你只需要在你的应用程序中添加一行即可。按如下方式配置呼叫:

app.configure(function() {
    app.set('views', __dirname + '/views');
    ...
    app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] }));
    app.use(connect.static(__dirname + '/public'));
    app.use(app.router);
});
如果这样做,则不需要为*.less文件使用特殊路由。您只需在公用文件夹中请求同名的*.css,它就会自动生成。如果示例有帮助,我将在jade和LESS中使用主/子布局:


快乐编码

除非我遗漏了什么,否则你真的不需要经历这些壮举来减少工作量:-)一般来说,你只需要在你的应用程序中添加一行即可。按如下方式配置呼叫:

app.configure(function() {
    app.set('views', __dirname + '/views');
    ...
    app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] }));
    app.use(connect.static(__dirname + '/public'));
    app.use(app.router);
});
如果这样做,则不需要为*.less文件使用特殊路由。您只需在公用文件夹中请求同名的*.css,它就会自动生成。如果示例有帮助,我将在jade和LESS中使用主/子布局:


快乐编码

这就是你要找的吗?不,我的节点可以成功运行,只要我不在Jade布局中放置较少的样式表链接。但是如果我在Jade布局中放置较少的样式表链接,它会出现
错误:enoint
如果您将其从布局中删除,那么
test.LESS
是否正确呈现,或者您是否会遇到相同的错误?另外,请确保您没有权限问题。我可以正确呈现
test。如果删除它,则会减少
left\u navigator.less
test.less
放在同一个文件夹中。这是您要找的吗?不,我的节点可以成功运行,只要我不在Jade布局中放置较少的样式表链接。但是如果我在Jade布局中放置较少的样式表链接,它会出现
错误:enoint
如果您将其从布局中删除,那么
test.LESS
是否正确呈现,或者您是否会遇到相同的错误?另外,请确保您没有权限问题。我可以正确呈现
test。如果删除它,则会减少
left\u navigator.less
test.less
放在同一文件夹中。