node.js koa 设置response header
时间: 2024-04-06 19:09:19 浏览: 259
在koa中设置response header可以使用ctx.set()方法,例如:
```javascript
const Koa = require('koa');
const app = new Koa();
app.use(async (ctx) => {
ctx.set('Content-Type', 'text/plain');
ctx.body = 'Hello World';
});
app.listen(3000);
```
在上面的例子中,我们在response header中设置了Content-Type为text/plain。可以通过调用ctx.set()方法来设置其他的response header,例如:
```javascript
ctx.set('Content-Disposition', 'attachment; filename="file.txt"');
```
这将在response header中设置Content-Disposition为attachment,并指定文件名为file.txt。
相关问题
uniapp node
### 关于 UniApp 与 Node.js 集成
#### 使用场景概述
UniApp 是一个多端开发框架,允许开发者编写一次代码并部署到多个平台(如微信小程序、H5网页等)。Node.js 则是一个基于 Chrome V8 引擎的 JavaScript 运行环境。二者可以很好地协同工作,在服务器端通过 Node.js 提供 API 接口服务给前端应用调用。
#### 构建项目结构
为了实现两者的集成,通常会创建两个独立但相互关联的项目文件夹:一个是用于存放客户端逻辑的 Vue/Uniapp 应用;另一个则是作为后端的服务端应用程序,它运行着 Express 或 Koa 等 Web 框架来处理 HTTP 请求,并利用 Mongoose 来操作 MongoDB 数据库[^1]。
```javascript
// server/app.js (Node.js 后端部分)
const express = require('express');
const app = express();
app.use(express.json());
let todos = [];
app.get('/api/todos', (req, res) => {
res.send(todos);
});
app.post('/api/todo/new', (req, res) => {
const todo = req.body;
todos.push(todo);
console.log(`${todo.text} added to the list`);
res.send(`Added ${todo.text}`);
});
```
对于前端而言,则是在 `main.js` 中配置 axios 实例以便向上述 RESTful APIs 发送请求:
```javascript
import { createApp } from 'vue';
import App from './App.vue';
const app = createApp(App);
// 创建 Axios 实例
import axios from "axios";
const instance = axios.create({
baseURL: '/api',
timeout: 5000,
headers: {'X-Custom-Header': 'foobar'}
});
app.config.globalProperties.$http = instance;
export default app.mount('#app');
```
在页面组件内部就可以方便地发起网络请求了:
```html
<template>
<div class="container">
<h2>Todo List</h2>
<ul v-if="todos.length !== 0">
<li v-for="(item,index) of todos" :key="index">{{ item }}</li>
</ul>
<input type="text" placeholder="Add new task..." @keyup.enter="addNewTask"/>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import axios from '../utils/request'
const todos = ref([])
function addNewTask(event){
let inputValue=event.target.value.trim()
if(inputValue!==''){
axios.post("/todo/new",{ text: inputValue }).then((res)=>{
console.log(res.data);
event.target.value='';
});
}
}
axios.get('/todos').then(response=>{
todos.value=response.data.map(item=>item.text);
})
</script>
```
以上展示了如何构建一个简单的待办事项列表应用,其中包含了前后端分离架构下的基本 CRUD 功能[^2].
阅读全文