Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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 &引用;“未找到”;浏览器中的纯文本,尝试在koajs上使用swig渲染模板时_Javascript_Node.js_Web Services_Koa_Swig Template - Fatal编程技术网

Javascript &引用;“未找到”;浏览器中的纯文本,尝试在koajs上使用swig渲染模板时

Javascript &引用;“未找到”;浏览器中的纯文本,尝试在koajs上使用swig渲染模板时,javascript,node.js,web-services,koa,swig-template,Javascript,Node.js,Web Services,Koa,Swig Template,我使用node.js上的koajs和swig模板引擎来学习和编写web服务。此时,浏览器仅加载“未找到”字样。在我尝试将程序拆分为多个文件之前,代码工作正常。在那之后,我试图让它工作,即使把所有的东西都放在一个文件中,也没有成功 “/templates/base.html”处的html文件确实存在。 为了澄清,当我运行'node--harmony index.js'时,没有错误,我得到的输出是'listening on port 3000'。但是当我尝试在浏览器中加载页面时,我得到了纯文本“未找

我使用node.js上的koajs和swig模板引擎来学习和编写web服务。此时,浏览器仅加载“未找到”字样。在我尝试将程序拆分为多个文件之前,代码工作正常。在那之后,我试图让它工作,即使把所有的东西都放在一个文件中,也没有成功

“/templates/base.html”处的html文件确实存在。 为了澄清,当我运行'node--harmony index.js'时,没有错误,我得到的输出是'listening on port 3000'。但是当我尝试在浏览器中加载页面时,我得到了纯文本“未找到”

这是我的档案:

index.js:

var routes = require('./routes');
var server = require('./server');


routes.baseroute

server.init(3000);
server.js:

var serve = require('koa-static');

var koa = require('koa');

var app = koa();


var init = function(port){

  app.use(serve('./public'));

  app.listen(port);
  console.log('\n   ---> listening on port '+port);
};

exports.init = init;
routes.js:

var koa = require('koa');
var route = require('koa-route');

var views = require('./views');

var app = koa();


var baseroute = app.use(route.get('/', views.baseview));

exports.baseroute = baseroute;
views.js:

var swig = require('swig');

var data = require('./data');


var baseview = function*(){
  var tpl = swig.compileFile('./templates/base.html');
  this.body = tpl(data.basedata);
};

exports.baseview = baseview;
data.js:

var basedata = {user: 'testuser123'};

exports.basedata = basedata;

因此,真正发生的事情是,在您将它们拆分为自己的文件之后,您在它们自己的文件中创建了一个单独的
koa
实例。 请参阅:-
var-app=koa()
服务器> JS>代码>和>代码>路由。JS< /COD>和膝关节炎认为它们是独立的应用程序。在膝关节炎中可能有不止一个应用程序,但你必须安装它们,以实现任何类型的连接。 首先,找到希望链接发生的主文件。我猜它是
server.js
,并从他们的文件(
route.js
)中公开其他
app
)。现在,当您链接它们时,只需使用
mount('/',require('./routes')
koa
将它们作为一个单元连接起来。简言之:

//routes.js
var koa = require('koa');
...
...
var app = koa();
app.use(route.get('/', views.baseview));

module.exports = app;

//server.js
var app = require('koa');
var mount = require('koa-mount');
var routes = require('./routes');
...
...
var init = function(port){

  app.use(serve('./public'));
  app.use(mount('/route', routes));
  app.listen(port);
  console.log('\n   ---> listening on port '+port);
};   
exports.init = init;

因此,真正发生的事情是,在您将它们拆分为自己的文件之后,您在它们自己的文件中创建了一个单独的
koa
实例。 请参阅:-
var-app=koa()
服务器> JS>代码>和>代码>路由。JS< /COD>和膝关节炎认为它们是独立的应用程序。在膝关节炎中可能有不止一个应用程序,但你必须安装它们,以实现任何类型的连接。 首先,找到希望链接发生的主文件。我猜它是
server.js
,并从他们的文件(
route.js
)中公开其他
app
)。现在,当您链接它们时,只需使用
mount('/',require('./routes')
koa
将它们作为一个单元连接起来。简言之:

//routes.js
var koa = require('koa');
...
...
var app = koa();
app.use(route.get('/', views.baseview));

module.exports = app;

//server.js
var app = require('koa');
var mount = require('koa-mount');
var routes = require('./routes');
...
...
var init = function(port){

  app.use(serve('./public'));
  app.use(mount('/route', routes));
  app.listen(port);
  console.log('\n   ---> listening on port '+port);
};   
exports.init = init;

在谈论
koa mount
之前,您是否在
public
目录中有
index.html
?不,我没有index.html。为什么这是必要的?不是真的,但这可以解释为什么你的主页上会出现404。所以,您真正的问题是,在
server.js
中,它不知道您的路线。
routes.js
中的
app
server.js
中的实例不同,因此它不知道您将这些链接在一起,即使您将它们包含在
index.js
中的一个文件中,也可以继续尝试将
routes
包含在
server.js
中,然后尝试装载它们<代码>变量装载=要求('koa-mount');var myRoutes=require(“./routes”)app.use(mount(“/”,myRoutes))这真的很有道理!谢谢。我现在要试试。在谈论
koa挂载之前,你在
public
目录中有
index.html
吗?没有,我没有index.html。为什么这是必要的?不是真的,但这可以解释为什么你的主页上会出现404。所以,您真正的问题是,在
server.js
中,它不知道您的路线。
routes.js
中的
app
server.js
中的实例不同,因此它不知道您将这些链接在一起,即使您将它们包含在
index.js
中的一个文件中,也可以继续尝试将
routes
包含在
server.js
中,然后尝试装载它们<代码>变量装载=要求('koa-mount');var myRoutes=require(“./routes”)app.use(mount(“/”,myRoutes))这真的很有道理!谢谢。我现在就去试试。