Koa.js - 提供静态文件和 REST API

2024-01-02

我是 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

这是我的来源:

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

我试过了koa-static, koa-static-folder, koa-static-server库都不起作用,所以我做错了。

我已经尝试过这个并且它有效,但我无权访问我的 REST api:

var app = require('koa')();
app.use(require('koa-static')('../ui/app/', {}));

对我来说,遵循你在示例代码中所做的事情有点困难...... 这是一个简单的示例,可以完成您想要的一切:

'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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Koa.js - 提供静态文件和 REST API 的相关文章

随机推荐

  • 实体框架模型第一个导航属性添加无效的列名进行查询?

    在我们的数据库中 我们有以下表格 Tags Id int Name string IsActive bool TagType string and DocumentStyles Id int Name string StyleRules s
  • 使用静态私有方法真的比实例私有方法更快/更好吗?

    我要问的是这样做是否有区别 public Something importantBlMethod SomethingElse arg if convenienceCheckMethod arg do important BL stuff p
  • 在 VS2008 旁边安装 Visual Studio 2010 Beta 2

    在没有收到已经尝试过的人的消息的情况下 我太偏执了 不敢在我的生产机器上安装 VS2008 旁边的 VS2010 Beta 2 我知道微软说没问题 但这并不一定意味着它会起作用 有没有人在他们的生产机器上成功安装 VS2010 Beta 2
  • Firefox 表示无法从以下位置下载搜索插件

    背景故事 我正在尝试动态生成开放搜索 http www opensearch org Specifications OpenSearch Extensions Suggestions 1 1Firefox 的搜索插件基于用户输入的值 作为较
  • 递归搜索二进制文件目录中的十六进制序列?

    我用来搜索一些十六进制值的当前命令 例如0A 8b 02 涉及 find type f not name png exec xxd p grep 0a8b02 xargs 0 P 4 鉴于以下目标 是否可以改进这一点 递归搜索文件 显示偏移
  • 在框架头中找不到 swift 文件

    我正在尝试创建一个简单的框架来快速测试 我已经在 Objective C 中用 创建框架 发布了这个问题before https stackoverflow com questions 27652648 i created a framew
  • git 快进一次提交

    9dbd857 hotfix correct java jdk path feature add ansible galaxy requirements file requirements yml adds maven and nodejs
  • 如何用c++移动鼠标

    我想用 C 脚本移动鼠标光标 我在 Parallels 内的 Windows 7 中使用 Visual C 2010 Express 并创建了一个控制台应用程序 我知道 SetCursorPos 方法 但它不起作用 它什么也不做 我设法用
  • 段落换行后有空格

    我使用浅黄色框在 HTML 页面上显示编程内容 类似于这一页 http api rubyonrails org classes ActionView Helpers UrlHelper html method i link to 为了制作一
  • Flex 正则表达式 到 Java 正则表达式

    最近 我正在寻求帮助 以使用 Flex 中的 RegEx 提取 URL 的某些模式 很少有人好心地帮助我完成它 See this https stackoverflow com questions 7358756 how to extrac
  • 将 MongoDb _id 从字符串更改为 ObjectId

    我们的文档最初是使用 id 的 StringObjectIdGenerator 类型存储的 较新的数据将使用默认的 ObjectIdGenerator 保存 我们希望能够通过将 id 转换为新的数据类型来迁移现有数据 这可能吗 是的 可以更
  • 如何使用 Python 对不同前缀同时运行 AWS S3 同步命令

    我正在尝试编写一个 python 脚本 它使用 subprocess 模块将文件从一个 s3 存储桶复制到另一个 但是 为了提高性能 我尝试并行运行具有不同前缀的单独同步命令 到目前为止我所尝试的脚本没有终止 并且我不确定子进程是否同时运行
  • 推断类型相等的 if 和 else 的约束

    我正在尝试填补以下代码片段中的漏洞 import Data Proxy import GHC TypeLits import Data Type Equality import Data Type Bool import Unsafe Co
  • 如何在 Java 中使用正则表达式模式匹配字符串的结尾?

    我想要一个与字符串末尾匹配的正则表达式模式 我正在实现一种词干算法 该算法将删除单词的后缀 例如 对于单词 Developers 它应该与 s 匹配 我可以使用以下代码来做到这一点 Pattern p Pattern compile s M
  • 代码分析 CA1060 修复

    我的应用程序中有以下代码 DllImport user32 dll private static extern int GetWindowLong IntPtr hwnd int index DllImport user32 dll pri
  • 按两个数字对列名进行排序

    我最近得到了这个惊人的答案 https stackoverflow com a 72141622 8071608来自 JBGruber 用于对具有双数值的字符串列进行排序 这适用于帖子底部的两个数据集 library magrittr or
  • Rails——创造再创造!方法,FoR 3 教程

    所以我知道 bang 感叹号 和非 bang 方法之间的区别通常是该方法是否会修改对象本身或返回一个单独的修改对象而保持原始对象不变 然后 在本书第 6 章构建用户模型时 我遇到了User create方法 该方法创建一个新模型并将其保存到
  • 从谷歌选择器选择文件后立即下载文件

    我只是想实现 Google Drive Picker API 以便下载用户通过 Google Drive Picker 提交的文件 在后台 我使用了 Google 选择器 效果很好 但后来我无法下载该文件 首先从单个文件开始 这是我的代码
  • 为什么径向树布局绘图算法会产生交叉边?

    根据 Andy Pavlo 先生的出版物 我正在实施径向布局绘图算法 第18页 问题是 我的结果包含交叉边 这是令人无法接受的 我找到了一些解决方案 类似的问题link https stackoverflow com questions 3
  • Koa.js - 提供静态文件和 REST API

    我是 koa js 库的新手 我需要一些帮助 我正在尝试使用 koa 制作简单的 REST 应用程序 我有一个静态 html 和 javascript 文件 我想在路线上提供服务 和 REST API 访问 api 这是我的项目目录树 pr