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 的相关文章

  • jQuery - 提高处理 XML 时的选择器性能

    我正在处理一个 XML 文件 当使用 XPath 样式选择器选择节点时 该文件的性能非常慢 这是运行特别慢的部分代码 for i 0 i
  • 将组件注册到现有的 Vue.js 实例

    我是 Vue js 新手 我想注册一个本地组件 如下所述 https v2 vuejs org v2 guide components html Local Registration https v2 vuejs org v2 guide
  • Sails.js - 如何更新嵌套模型

    attributes username type email validated by the ORM required true password type string required true profile firstname s
  • 是否可以将自定义 HTML 添加到传单图层组和图层控件

    有什么方法可以将自定义 HTML 注入图层组和图层控件中吗 在我们的应用程序中 我们实现了滑块 输入 范围 来调整不透明度设置 并且很明显 在其控制容器内部的基础层上使用专用滑块是有意义的 没有选项或参数可以修改此控件 理想情况下 我们希望
  • Visual Studio IDE 中功能后的空间

    如何设置 Visual Studio 中的设计以在我的 javascript 函数后面放置一个空格 目前 当我按下返回键时 我得到了这个 var myfunc function 当我想要这个的时候 var myfunc function 知
  • Chrome 内存/垃圾收集问题

    我在使用 Chrome 时遇到内存 垃圾收集问题 我正在开发一个照片上传网站 该网站允许我的客户使用 HTML5 和文件 API 拖放照片进行上传 因此这在 IE 中不起作用 它仅适用于 Chrome 和 FF 我还没有在 Safari O
  • Twitter Bootstrap 轮播在加载时自动播放

    使用twitter bootstrap框架 如何调用轮播来 自动滑动 这意味着当页面加载时 轮播会自动滚动 我尝试过 javascript onLoad click 函数 a 下一个链接的 但这不起作用 你应该这样做Twitter Boot
  • Disqus 评论数始终为 0 条评论

    我想我已经按照通用代码的说明设置了 Disqus 问题是它总是说某个帖子有 0 条评论 拿这个帖子来说 http tx0rx0 com retropie and the raspberry pi http tx0rx0 com retrop
  • RequireJS 文本插件和变量连接字符串

    我正在使用 RequireJS 文本插件来加载一些 html 模板 当我将字符串文字传递给 require 函数时 它工作正常 var templateHTML require text templates template name ht
  • Strapi 未加载 Digital Ocean 上托管的现有 MongoDB 中的集合

    我正在使用 Strapi 创建一个新应用程序 并尝试将其与托管在 Digital Ocean 上的 MongoDB 连接 但不幸的是Strapi 无法从现有 MongoDB 获取集合 在这里 我提到我实现 Strapi 与现有 MongoD
  • 使用 jQuery/JavaScript 将文本框值复制到剪贴板

    我有一个文本框和按钮 如下所示 div class col xs 11 style padding 20px 0 div
  • 自 2012 年 6 月 12 日以来,“未定义”随机附加在我网站上 1% 的请求网址中

    自 2012 年 6 月 12 日 11 20 TU 起 我在我的 varnish apache 日志中看到非常奇怪的错误 有时 当用户请求一页时 几秒钟后我会看到类似的请求 但 url 中最后一个 之后的所有字符串已被 未定义 替换 例子
  • 错误:找不到模块“jasmine-core”

    我安装了以下内容进行测试 devDependencies jasmine core 2 4 1 karma 0 13 22 karma jasmine 0 3 7 karma phantomjs launcher 1 0 0 运行后karm
  • 更改特定字符串的颜色

    有谁知道如果将特定单词输入文本区域 我如何更改它的颜色 例如 如果用户输入 你好我的朋友 它会动态地将 你好 更改为绿色 在google上花了很多时间 找不到任何相关的东西 谢谢 textareas 的设计目的不是选择性着色
  • 如何上传文件 - sails.js

    我可以下载图像和 pdf 但无法下载文档文件 doc pptx odt 下载文档 doc pptx odt 时 仅将其下载为 ZIP XML 文件 我可以做什么 我在用着 填写上传文件文档 https github com balderda
  • 获取 byte[]

    我有一个 html 画布 如下所示 output is a base64string of image data var oldImage new Image oldImage onload function var resizeRatio
  • 无法从 JSON 请求获取数据,尽管我知道它已返回

    我试图获取从 getJSON 返回的数据 但我无法让它工作 我已经在 search twitter API 上尝试了相同的代码 效果很好 但它不适用于其他网站 我知道数据已返回 因为我在使用检查器时可以找到它 我通过检查器找到的值是 id
  • 使用 div 或表格来包含链接列更好吗?

    我的页面底部有 3 列链接 每列都放入一个 div 中 所有三个 div 都包装在页面中央的一个大 div 中 这是更适合桌子的东西还是桌子不适合这项工作 您还可以使用 ul http www w3schools com tags tag
  • Spring RESTful控制器方法改进建议

    我是 Spring REST 和 Hibernate 的新手 也就是说 我尝试组合一个企业级控制器方法 我计划将其用作未来开发的模式 您认为可以通过哪些方法来改进 我确信有很多 RequestMapping value user metho
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959

随机推荐

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

    在我们的数据库中 我们有以下表格 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