sur*_*tus 7 javascript rest static node.js koa
我是koa.js图书馆的新手,我需要一些帮助.我正在尝试使用koa制作简单的REST应用程序.我有一个静态的html和javascript文件,我想在路由/和REST API访问/api/.
这是我的项目目录树:
project
??? server
? ??? node_modules
? ??? package.json
? ??? src
? ??? config
? ??? resources
? ??? server.js
??? ui
? ??? app
? ??? bower.json
? ??? bower_components
? ??? dist
? ??? node_modules
? ??? package.json
? ??? test
Run Code Online (Sandbox Code Playgroud)
这是我的来源:
var app = require('koa')();
app.use(mount('/api/places', require('../resources/places')));
// does not work
var staticKoa = require('koa')();
staticKoa.use(function *(next){
yield next;
app.use(require('koa-static')('../ui/app', {}));
});
app.use(mount('/', staticKoa));
// does not work
app.use(mount('/', function*() {
app.use(require('koa-static')('../ui/app/', {}));
}));
// does not work
app.use(mount('/', function*() {
app.use(require('koa-static')('.', {}));
}));
// GET package.json -> 404 not found
Run Code Online (Sandbox Code Playgroud)
我试过koa-static,koa-static-folder,koa-static-server图书馆也不工作,所以我做错了什么.
我试过这个并且它可以工作,但我无法访问我的REST API:
var app = require('koa')();
app.use(require('koa-static')('../ui/app/', {}));
Run Code Online (Sandbox Code Playgroud)
Jam*_*ore 17
我在你的示例代码中跟踪你正在做的事情有点困难......这是一个简单的例子,可以完成你想要的一切:
'use strict';
let koa = require('koa'),
send = require('koa-send'),
router = require('koa-router')(),
serve = require('koa-static');
let app = koa();
// serve files in public folder (css, js etc)
app.use(serve(__dirname + '/public'));
// rest endpoints
router.get('/api/whatever', function *(){
this.body = 'hi from get';
});
router.post('/api/whatever', function *(){
this.body = 'hi from post'
});
app.use(router.routes());
// this last middleware catches any request that isn't handled by
// koa-static or koa-router, ie your index.html in your example
app.use(function* index() {
yield send(this, __dirname + '/index.html');
});
app.listen(4000);
Run Code Online (Sandbox Code Playgroud)
小智 5
const root = require('path').join(__dirname, 'client', 'build');
app.use(serve(root));
app.use(async ctx => {
await send(ctx, `/index.html`, {
root
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15402 次 |
| 最近记录: |