Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
Node.js 平均堆栈应用程序中的部分页面呈现问题_Node.js_Angularjs_Express_Webstorm_Mean Stack - Fatal编程技术网

Node.js 平均堆栈应用程序中的部分页面呈现问题

Node.js 平均堆栈应用程序中的部分页面呈现问题,node.js,angularjs,express,webstorm,mean-stack,Node.js,Angularjs,Express,Webstorm,Mean Stack,通过阅读Pluralsight教程,我正在学习Mean Stack。我在某个点上被打动了2天的部分渲染 您可以参考下图获取我的文件夹结构 server.js /** * Created by nyaconcepts on 4/10/2014. */ var express=require('express'); var env=process.env.NODE_ENV=process.env.NODE_ENV||'development'; var app=express(); var c

通过阅读Pluralsight教程,我正在学习Mean Stack。我在某个点上被打动了2天的部分渲染

您可以参考下图获取我的文件夹结构

server.js

/**
 * Created by nyaconcepts on 4/10/2014.
 */
var express=require('express');
var env=process.env.NODE_ENV=process.env.NODE_ENV||'development';
var app=express();
var config=require('./server/config/config')[env];

require('./server/config/express')(app,config);
require('./server/config/mongoose')(config);
require('./server/config/routes')(app);

app.listen(config.port);
console.log('Listening on port'+config.port+'---');
express.js

var express=require('express'),
    bodyParser = require('body-parser'),
    morgan  = require('morgan'),
    stylus=require('stylus');

module.exports=function(app,config) {
    function compile(str,path){
        return stylus(str).set('filename',path);
    }

        app.set('views',config.rootPath+'server/views');
        app.set('view engine','jade');
        app.use(morgan('dev'));
        app.use(bodyParser());
        app.use(stylus.middleware({
                src:config.rootPath+'/public',
                compile:compile
            }
        ));
        app.use(express.static(config.rootPath+'/public'));


}
routes.js

module.exports=function(app){
    app.get('/partials/*',function(req,res){
        console.log("req ="+req +"and res="+res);
        res.render('../../public/app/'+ req.params);
    });

    app.get('*',function(req,res){
        res.render('index');
    });
}
app.js

angular.module('app',['ngResource','ngRoute']);

angular.module('app').config(function($routeProvider,$locationProvider){
    $locationProvider.html5Mode(true);
    $routeProvider
        .when('/',{ templateUrl:'/partials/main/main/',controllers:'mvMainCtrl'});
});
config.js

var path=require('path');
var rootPath=path.normalize(__dirname + '/../../' );

module.exports={
    development:{
        db:'mongodb://localhost/multivision',
        rootPath:rootPath,
        port:process.env.PORT || 3030
    },
    production:{
        db:'****',
        rootPath:rootPath,
        port:process.env.PORT || 80
    }
}
梅因·杰德

//h1 This is a partial
//h2{{myVar}
.container
    .jumbotron
        h1 MultiVision
        p My first mean stack application

    .row
        .col-md-6
            div(ng-include="'/partials/main/featured-courses'")
        .col-md-6
            div(ng-include="'/partials/main/new-courses'")
我得到的错误是

Error: Failed to lookup view "../../public/app/[object Object]" in views directory "C:\Users\nyaconcepts\WebstormProjects\MultiVision\server/views"
    at Function.app.render (C:\Users\nyaconcepts\WebstormProjects\MultiVision\node_modules\express\lib\application.js:491:17)
    at ServerResponse.res.render (C:\Users\nyaconcepts\WebstormProjects\MultiVision\node_modules\express\lib\response.js:777:7)
    at Object.handle (C:\Users\nyaconcepts\WebstormProjects\MultiVision\server\config\routes.js:5:13)
    at next_layer (C:\Users\nyaconcepts\WebstormProjects\MultiVision\node_modules\express\lib\router\route.js:103:13)
    at Route.dispatch (C:\Users\nyaconcepts\WebstormProjects\MultiVision\node_modules\express\lib\router\route.js:107:5)
    at c (C:\Users\nyaconcepts\WebstormProjects\MultiVision\node_modules\express\lib\router\index.js:195:24)
    at Function.proto.process_params (C:\Users\nyaconcepts\WebstormProjects\MultiVision\node_modules\express\lib\router\index.js:251:12)
    at next (C:\Users\nyaconcepts\WebstormProjects\MultiVision\node_modules\express\lib\router\index.js:189:19)
    at SendStream.error (C:\Users\nyaconcepts\WebstormProjects\MultiVision\node_modules\express\node_modules\serve-static\index.js:74:37)
    at SendStream.EventEmitter.emit (events.js:95:17)

您正在尝试访问视图
。/../public/app/[object object]
,该路径无效。 问题在
res.render('../../public/app/'+req.params)中
req.params
是一个对象,您需要从中提取一个包含部分名称的值

此代码段来自:


我也面临同样的问题,这是我解决问题的方法

    // Serve jade tempates from partials
app.get('/partials/*', function(req, res){
    console.log(req.params);
    res.render('../../public/app/' + req.params[0]);
});
感谢@Roman提供了了解情况的提示:)

这很好用

 // Serve jade tempates from partials
app.get('/partials/*', function(req, res){
    console.log(req.params);
    res.render('../../public/app/' + req.params[0]);
});

我尝试按照您的建议实施,但仍然出现错误..呈现部分“partials\account\navbar login”时出错{[错误:无法在视图目录“C:\Users\nyaconcepts\webstorprojects\MultiVision\server/views”中查找视图“partials\account\navbar login”]视图:{name:'partials\\account\\navbar login',root:'C:\\Users\\nyaconcepts\\webstorprojects\\MultiVision\\server/views',defaultEngine:'jade',ext:'.jade',engine:[Function],path:undefined}您走的路是对的。现在您正在尝试访问视图
partials\account\navbar login
,但从代码来看,您需要在路径前面添加
。/../../
。只需读取错误并确保构造的路径与实际路径匹配。thanx roman。我调试了代码。他们的路径出现了一些问题:)欢迎发布修复程序?我在同一课程中也遇到了同样的问题。欢迎使用Stack Overflow!虽然这段代码可能会回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,仅代码回答是没有用的。
 // Serve jade tempates from partials
app.get('/partials/*', function(req, res){
    console.log(req.params);
    res.render('../../public/app/' + req.params[0]);
});