tokenpocket钱包下载中文版安装|ctx

作者: tokenpocket钱包下载中文版安装
2024-03-07 18:02:00

jsp之${CTX}理解-CSDN博客

>

jsp之${CTX}理解-CSDN博客

jsp之${CTX}理解

最新推荐文章于 2023-12-26 22:02:21 发布

狮兄

最新推荐文章于 2023-12-26 22:02:21 发布

阅读量5.4w

收藏

40

点赞数

14

分类专栏:

Java

文章标签:

jsp

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/IDOshi201109/article/details/50978064

版权

Java

专栏收录该内容

25 篇文章

1 订阅

订阅专栏

jsp之${CTX}

根据自己的需要选择以下标签。

<%@ taglib uri="/struts-tags" prefix="s"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>

<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>

我项目中的代码如下: index.jsp

<%@ page language="java" pageEncoding="UTF-8" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>

主页

欢迎使用an笛声后台系统

${CTX} 与${pageContext.request.contextPath}的对比

1、${pageContext.request.contextPath}是获取当前根目录。

2、${ctx}通过观察可以知道也是获取当前根目录的意思

不同之处: ${ctx}是 ${pageContext.request.contextPath}的简写版。 同时发现在项目的index.jsp文件内有这样一段话的配置,。在此值得注意的是,在使用${ctx}的时候一定不要忘记把带有该配置的的文件引入到当前页面来。

关于${pageContext.request.contextPath}的理解,参考我转载并且修改之后的博文。 ${pageContext.request.contextPath}的作用

该博文还参考了文章有: http://blog.sina.com.cn/s/blog_6f0da7620100mrnt.html

优惠劵

狮兄

关注

关注

14

点赞

40

收藏

觉得还不错?

一键收藏

知道了

2

评论

jsp之${CTX}理解

jsp之${CTX}根据自己的需要选择以下标签。<%@ taglib uri="/struts-tags" prefix="s"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %><%@

复制链接

扫一扫

专栏目录

Jeesite框架自定义上下文对象:ctx和${ctxStatic}.docx

03-05

Jeesite框架自定义上下文对象:ctx和${ctxStatic}

jsp标签、 项目全路径引用${ctx}

weixin_34029949的博客

04-10

338

请根据自己的需要选择以下标签。

<%@ taglib uri="/struts-tags" prefix="s"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt&quo

2 条评论

您还未登录,请先

登录

后发表或查看评论

关于${ctx}拿不到值的问题

WGH100817的博客

05-31

817

当项目开发时我们喜欢用

来获取项目根目录,但是当项目如果为ROOT下时,是获取的空值。这是有另一个方法可以实现。

来设置根目录访问地址。

关于base标签的知识...

jsp中var和let区别

最新发布

m0_73632606的博客

12-26

44

var 声明的变量会在当前作用域的顶部被提升,也就是说,你可以在变量声明之前访问和赋值它们。- let 声明的变量具有块级作用域,也就是说,它们只能在当前块(花括号内)中访问和修改。- var 声明的变量具有函数作用域,也就是说,它们可以在当前函数内部访问和修改。- var 允许在同一作用域内重新声明变量,后面的声明会覆盖前面的声明。- let 声明的变量不会被提升,你只能在变量声明之后访问和赋值它们。- var 没有暂时性死区,你可以在变量声明之前访问和赋值它们。

google draw ext ctx

07-13

google draw ext ctx

ruoyi是怎么点击菜单跳转页面的_RUOYI框架教程(二)

weixin_39611047的博客

11-21

3748

“期待已久的系列,又双叒叕给大家见面啦”本系列纯干货!!有想了解的小伙伴,欢迎加微信v5coding_com(非官方)~~~01—上期回顾上期推文中,我们就若依框架进行了简单的介绍与初步上手操作。传送门:RUOYI框架教程(一)光说不干假把式,本期以常见的笔记功能进行讲解,功能简单,参考勿喷~~实战项目:《笔记管理》涉及框架内容:1、字典管理;2、菜单管理;3、代码生成;4、富文本编辑...

${cxt}

weixin_33694620的博客

03-30

484

${CTX}与${pageContext.request.contextPath}的对比

1、${pageContext.request.contextPath}是获取当前根目录。

2、${ctx}通过观察可以知道也是获取当前根目录的意思

不同之处:${ctx}是${pageContext.request.contextPath}的简写版。同时发现在项目的index.jsp文件内有这...

${ctx}

北倾的博客

10-26

1028

${CTX}与${pageContext.request.contextPath}的对比

1、${pageContext.request.contextPath}是获取当前根目录。

2、${ctx}通过观察可以知道也是获取当前根目录的意思

不同之处:

${ctx}是${pageContext.request.contextPath}的简写版。

同时发现在项目的index.jsp文件内有这样一段话的配置,

67685

Shiro配置错误之“Error creating bean with name 'securityManager' defined in class path resource”

58521

jsp之${CTX}理解

54383

Xcode真机调试出现“*** is busy: Processing symbol files”

50988

两台服务器之间拷贝文件-scp方法

42478

分类专栏

node

2篇

npm

2篇

Windows

3篇

跨域

1篇

Echarts

2篇

JavaScript

4篇

高德地图

3篇

iOS

61篇

数据结构

2篇

Enbedded配置

1篇

linux

18篇

qt

1篇

Android

7篇

工具类

6篇

项目开发记录

3篇

Mac开发环境配置

12篇

技巧

2篇

Xcode

7篇

服务器

3篇

Java

25篇

SecureCRT

2篇

Swift

2篇

SVN

3篇

单片机

2篇

nRF

1篇

Python

5篇

数据库

4篇

PostgreSQL

1篇

Eclipse

4篇

Shiro

1篇

项目架构

1篇

MySQL

1篇

React

前端

2篇

vim

1篇

Flask

2篇

Weex

3篇

uni-app

4篇

Vue

4篇

最新评论

uni-app Android证书配置

CSDN-Ada助手:

小程序开发和H5开发有什么差异呢?

MyEclipse10激活方法

weixin_43989196:

出现无效code也有可能是存在老版本的jar包(第七步搜索出来),删了重新输入code就行

Echarts图表效果图(Make A Pie替代)

小卡雷尔:

可以试用下 http://chartlib.datains.cn 这个全新版本哦,完全可以当做自己的工具箱

Echarts图表效果图(Make A Pie替代)

小卡雷尔:

可以试用下 http://chartlib.datains.cn 这个全新版本哦,完全可以当做自己的工具箱

Echarts图表效果图(Make A Pie替代)

小卡雷尔:

可以试用下 http://chartlib.datains.cn 这个全新版本哦,完全可以当做自己的工具箱

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

NVM安装node后提示没有对应npm包(即:无法将“npm”项识别为 cmdlet、函数、脚本文件)

Chrome浏览器设置跨域—Windows

Node.js与npm版本比对

2023年3篇

2022年1篇

2021年11篇

2020年3篇

2019年10篇

2018年7篇

2017年18篇

2016年78篇

2015年28篇

2014年8篇

2013年15篇

目录

目录

分类专栏

node

2篇

npm

2篇

Windows

3篇

跨域

1篇

Echarts

2篇

JavaScript

4篇

高德地图

3篇

iOS

61篇

数据结构

2篇

Enbedded配置

1篇

linux

18篇

qt

1篇

Android

7篇

工具类

6篇

项目开发记录

3篇

Mac开发环境配置

12篇

技巧

2篇

Xcode

7篇

服务器

3篇

Java

25篇

SecureCRT

2篇

Swift

2篇

SVN

3篇

单片机

2篇

nRF

1篇

Python

5篇

数据库

4篇

PostgreSQL

1篇

Eclipse

4篇

Shiro

1篇

项目架构

1篇

MySQL

1篇

React

前端

2篇

vim

1篇

Flask

2篇

Weex

3篇

uni-app

4篇

Vue

4篇

目录

评论 2

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

认识ctx对象、ctx的方法_ctx.-CSDN博客

>

认识ctx对象、ctx的方法_ctx.-CSDN博客

认识ctx对象、ctx的方法

最新推荐文章于 2021-09-23 20:21:24 发布

星辰大海_enoch

最新推荐文章于 2021-09-23 20:21:24 发布

阅读量2.5w

收藏

19

点赞数

6

分类专栏:

Node.js

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/u012872771/article/details/103647104

版权

Node.js

专栏收录该内容

27 篇文章

1 订阅

订阅专栏

ctx.req 原生request对象 ctx.res 原生response对象 ctx.request koa的request对象 ctx.response koa的response对象

ctx.throw()抛异常: ctx.redirect()重定向

301永久重定向302临时重定向

const Koa = require("koa");

const Router = require("koa-router");

const fs = require("promise-fs");

let server = new Koa();

let router = new Router();

server.listen(8000);

// 判断登录

let login = false;

router.get('/', async ctx=> {

if(!login) {

ctx.redirect('/login')

}else{

ctx.body="你已经入购物车页面"

}

});

// 重定向到登录页的时候

router.get('/login', async ctx=> {

let buffer = await fs.readFile('./public/login.html');

ctx.body = buffer.toString();

})

// 登录页提交数据后

router.post('/login', async ctx=> {

login = true;

ctx.redirect('/')

})

server.use(router.routes())

下载附件:

const Koa = require("koa");

const Router = require("koa-router");

const fs = require("promise-fs");

let server = new Koa();

let router = new Router();

server.listen(8000);

router.get('/download', async ctx=>{

ctx.attachment('数据统计.xlsx'); // 下载附件的名字和格式

ctx.body=await fs.readFile('./data/1.txt')

})

server.use(router.routes())

推荐使用: fs.createReadStream方法:读一点,发一点,对性能比较友好。 fs.readFile:读整个文件,发整个文件,占用内存和读磁盘,之后又占用网络,一个忙死,一个闲死,遇上大文件等待长。

const Koa = require("koa");

const Router = require("koa-router");

const fs = require("promise-fs");

// const MemoryStream = require("memorystream");

let server = new Koa();

let router = new Router();

server.listen(8000);

router.get('/download', async ctx=>{

ctx.attachment('文件.doc');

// ctx.body = await fs.readFile('./data/1.txt');

ctx.body = await fs.createReadStream('./data/1.txt');

});

server.use(router.routes())

**内存流memorystream:**动态生成内容并下载,可以用于拼接数据。在内存中构建流。

npm i memorystream -D

案例:

const Koa = require("koa");

const Router = require("koa-router");

const fs = require("promise-fs");

const MemoryStream = require("memorystream");

let server = new Koa();

let router = new Router();

server.listen(8000);

router.get('/download', async ctx=>{

let strem = new MemoryStream();

ctx.attachment('20200111.txt'); // 下载的名字和格式

ctx.body=strem;

strem.write("我是日志文件"); // 内容

strem.write("现在是2019年12月22日");

strem.end(); // 结束strem

})

server.use(router.routes())

头操作:ctx.headers 在服务端获取客户端头的方法:格式是JSON。

const Koa = require("koa");

const Router = require("koa-router");

let server = new Koa();

let router = new Router();

server.listen(8000);

router.get('/', async ctx=>{

console.log(ctx.headers); // 获取全部头 是json格式

console.log(ctx.headers['host']); // 指定获取host地址

console.log(ctx.get('host')); // 指定获取host地址

ctx.body = "welcome";

});

server.use(router.routes())

客户端发送请求: 服务端获取的情况: 给客户端设置头部:

const Koa = require("koa");

const Router = require("koa-router");

let server = new Koa();

let router = new Router();

server.listen(8000);

router.get('/', async ctx=>{

ctx.set('name', 'enoch'); // 自定义头

ctx.set('age', '18');

ctx.set('set-cookie', 'type=12'); // 官方头

ctx.body = "welcome";

});

server.use(router.routes())

看一下客户端:已经设置上了,可以设置自定义头,也可以设置官方头。

优惠劵

星辰大海_enoch

关注

关注

6

点赞

19

收藏

觉得还不错?

一键收藏

知道了

0

评论

认识ctx对象、ctx的方法

ctx.req 原生request对象ctx.res 原生response对象ctx.request koa的request对象ctx.response koa的response对象ctx.throw()抛异常:ctx.redirect()重定向301永久重定向302临时重定向const Koa = require("koa")...

复制链接

扫一扫

专栏目录

httpctx:上下文感知 http 客户端库

06-06

httpctx

提供了一个 json-aware http 客户端,它利用了谷歌优秀的context包 。 有一个很好的上下文包。

这个库的目的是通过健壮的方式简化使用 json api 和 go 的任务。 通过使用context包,我们继承了跨 api 边界和 go 例程处理取消信号和截止日期的能力。

特征:

支持谷歌的context文库

本机处理 json 请求/响应

允许可选的用户定义身份验证功能

简单示例 - 使用 openweathermap,检索伦敦的天气

package main

import (

"code.google.com/p/go.net/context"

"fmt"

"github.com/savaki/httpctx"

"net/url"

)

func main() {

weather := struct {

Values map[stri

CTX400车削中心数控加工与编程应用

12-09

数控车削中心CTX400E是德国(德马吉公司)生产的集车、铣功能于一体的数控机床,其强大的车削功能,独具特色的Y轴、C轴铣功能,使零件装夹、定位次数减少,车削、铣削部位一刀加工完成。作者在本文中对CTX400数控车削中心的功能和数控系统进行了简略描述,并给出了一个加工实例。 一、CTX400机床主体结构 CTX400车削中心主要由床身、一体化主轴(主轴H)、卡盘夹持/夹紧装置、Z轴进给驱动、转塔刀架、X轴进给驱动、尾架和复合滑座等部分组成。 1. 机床技术参数 CTX400E车削中心主轴转速范围是25~5000 r/min,卡盘直径为200 mm,C轴转速为100

参与评论

您还未登录,请先

登录

后发表或查看评论

arm_a9_ctx.zip

10-18

arm_a9_ctx VxWorks6.9 BSP

google draw ext ctx

07-13

google draw ext ctx

CTX-开源

05-29

基于组件的集成工具

koa学习

Study_Live_Sun的博客

09-13

177

一、搭建本地服务器

(1)创建项目

(2)执行npm init创建packag.json文件

(3)安装依赖 cnpm install koa koa-router --save

(4)安装自动监测代码变更的工具cnpm install -g nodemon

(5)代码示例

package.json

{

"name": "koa01",

"version": "1.0.0",

"description": "",

"main": "app.js",

"scripts":.

后端代理跨域配置

qq_40770473的博客

11-12

266

后端代理跨域配置node中代理配置

node中代理配置

router.get('/',ctx=>{

ctx.redirect("/api")

})

router.get('/api', async ctx => {

ctx.body = "早期的鸟儿有虫吃"

})

http研究之旅:重定向

qq_41672008的博客

09-13

461

http研究之旅:重定向

重定向就是,客户端访问服务器资源的时候,这个资源被分配到了新的URI,希望客户端使用新的URI进行访问

这里要注意一点就是,当客户端接收到状态码为302的时候,那么客户端会自动访问响应头的lcoation指向的URL,因此设置重定向的时候不要忘记返回302状态码,因为如果返回的状态码是200,那么客户端就不会访问location,那么重定向也就失败了

在 koa中可以直...

一篇文章搞定Gin框架

帅聪锅锅的博客

09-23

701

文章目录1. HTTP请求和参数解析1.1 Engine的创建1.2 Handle处理HTTP请求1.3 分类处理请求1.4 重定向2. 请求参数绑定与多数据格式处理2.1 参数绑定2.2 多数据格式返回补充:关于HTML模板3. 路由组4. 中间件4.1 中间件的基本使用4.2 中间件和控制器共享数据5. 文件上传6. Cookie和Session6.1 设置Cookie6.2 获取Cookie6.3 Session

前言

安装:go get -u github.com/gin-gonic/gin

导入

node基础学习--ctx

weixin_42282999的博客

12-14

3309

1、简介

ctx是context的缩写中文一般叫成上下文,这个在所有语言里都有的名词,可以理解为上(request)下(response)沟通的环境,所以koa中把他们两都封装进了ctx对象,koa官方文档里的解释是为了调用方便,ctx.req=ctx.request,ctx.res=ctx.response,类似linux系统中的软连接?最终执行还是request和response对象

body是http协议中的响应体,header是指响应头

ctx.body = ctx.res.body = ctx.r

arm_a15_ctx.zip

10-18

arm_a15_ctx VxWorks6.9 BSP

解决koa2 ctx.render is not a function报错问题

10-18

主要介绍了解决koa2 ctx.render is not a function报错问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Jeesite框架自定义上下文对象:ctx和${ctxStatic}.docx

03-05

Jeesite框架自定义上下文对象:ctx和${ctxStatic}

draw.io chrome ctx

07-13

draw.io chrome ctx

koa-router基本使用、错误处理404和500

u012872771的博客

12-21

4716

路由:根据请求方式、请求地址的不同来执行对应的函数

安装

npm install koa-router --save

案例:

const Koa = require("koa");

const Router = require("koa-router");

let server = new Koa();

server.listen(8000);

let router = new Rout...

ctx对象的属性

u012872771的博客

12-22

1225

请求访客地址:ip

context:类似protype,用于补充功能。

state: 官方提供的方法空间,防止context覆盖了一下系统功能。

特性检测:

检测给用户提供什么语言的网页,方法有两种,

方法1:根据用户的ip地址,区分国家;

方法2:可以有在日本的中国人,也可能有在美国的中国人,或者在中国的美国人,所以方法一不准确,所以可以使用ctx.acceptsLanguage方法。

cons...

Koa.js基础 认识Koa.js

u012872771的博客

12-21

818

先初始化和下载koa:

npm init -y

npm install koa -D

第一段代码:

const Koa = require("koa"); // 引入Koa

let server = new Koa(); // 创建实例

server.listen(8000); // 监听端口

server.use(async ctx => {

ctx.body = "h...

增加数据库和redis

u012872771的博客

12-29

754

数据库MySQL:

const Koa = require('koa');

const config = require('./config');

let server = new Koa();

(async ()=>{

// 数据库

server.context.db = await require('./libs/mysql')

server.use(asyn...

ctx: ctx, 是什么意思

最新发布

06-06

在 Go 语言中,`ctx` 通常是 `context.Context` 类型的变量或参数名的缩写。`context.Context` 是一个标准库中的类型,用于在程序的多个 goroutine 之间传递请求范围的参数、元数据以及请求的取消信号等。

由于 `context.Context` 类型的对象可以在整个请求处理过程中传递,因此通常在函数调用链中将其作为参数传递,以便在函数内部进行控制,例如设置超时、取消请求等。在函数签名中,通常将 `ctx` 参数放在参数列表的第一位,以方便调用者传递。例如:

```go

func MyFunc(ctx context.Context, arg1 int, arg2 string) error {

// ...

}

```

在调用该函数时,通常会创建一个新的 `context.Context` 对象,并将其作为第一个参数传递给该函数。例如:

```go

ctx := context.Background() // 创建一个新的 context.Context 对象

err := MyFunc(ctx, 123, "hello")

```

这样,在 `MyFunc` 函数中就可以使用 `ctx` 参数来进行超时、取消等操作了。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

星辰大海_enoch

CSDN认证博客专家

CSDN认证企业博客

码龄10年

暂无认证

137

原创

42万+

周排名

195万+

总排名

7万+

访问

等级

765

积分

4

粉丝

11

获赞

5

评论

65

收藏

私信

关注

热门文章

认识ctx对象、ctx的方法

25049

vue: 动态添加样式

4788

koa-router基本使用、错误处理404和500

4716

vue: 条件渲染v-if和循环v-for

2062

vue: 常见的form表单 自定义组件v-model

1971

分类专栏

React

14篇

MySQL

Node.js

27篇

网络

4篇

Git

Vue.js

Webpack

最新评论

vue: 动态添加样式

aline215:

vue数据样式动态绑定,博主讲的很棒,学习了http://www.redmother.com/archives/9.html

vue: vuex getters mutations actions

ctotalk:

感谢

项目结构、配置

程序猿杂记:

大佬大佬!

增加数据库和redis

程序猿杂记:

大佬大佬!

opn和网络提示

程序猿杂记:

感谢分享

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

管理员数据生成

全局错误处理

整合内容静态化

2019年137篇

目录

目录

分类专栏

React

14篇

MySQL

Node.js

27篇

网络

4篇

Git

Vue.js

Webpack

目录

评论

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

环磷酰胺_百度百科

_百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心收藏查看我的收藏0有用+10环磷酰胺播报讨论上传视频药品本词条由“科普中国”科学百科词条编写与应用工作项目 认证 。环磷酰胺(Cyclophosphamide,CTX)是进入人体内被肝脏或肿瘤内存在的过量的磷酰胺酶或磷酸酶水解,变为活化作用型的磷酰胺氮芥而起作用的氮芥类衍生物。抗瘤谱广,是第一个所谓“潜伏化”广谱抗肿瘤药,对白血病和实体瘤都有效。环磷酰胺在体外无活性,主要通过肝脏P450酶水解成醛磷酰胺再运转到组织中形成磷酰胺氮芥而发挥作用。环磷酰胺可由脱氢酶转变为羧磷酰胺而失活,或以丙烯醛形式排出,导致泌尿道毒性。属于周期非特异性药,作用机制与氮芥相同。2017年10月27日,世界卫生组织国际癌症研究机构公布的致癌物清单初步整理参考,环磷酰胺在1类致癌物清单中。 [1]中文名环磷酰胺外文名Cyclophosphamide,CTX [4]别名P-[N,N-双(β-氯乙基)]-1-氧-3-氮-2-磷杂环己烷-P-氧化物化学式C7H15Cl2N2O2P分子量261.086CAS登50-18-0熔点41 至 45 ℃沸点336 ℃图集科普中国致力于权威的科学传播本词条认证专家为张征丨主管药师北京朝阳医院  药事部审核邱葵丨主管药师北京朝阳医院 药事部审核目录1计算化学数据2药品简介▪适应症▪用法用量▪不良反应▪注意事项▪用药禁忌▪药物相互作用3药典信息▪来源▪性状▪鉴别▪检查▪含量测定▪类别▪贮藏▪制剂基本信息中文名环磷酰胺外文名Cyclophosphamide,CTX [4]别    名P-[N,N-双(β-氯乙基)]-1-氧-3-氮-2-磷杂环己烷-P-氧化物化学式C7H15Cl2N2O2P分子量261.086CAS登录号50-18-0熔    点41 至 45 ℃沸    点336 ℃水溶性40 g/L密    度1.33 g/cm³外    观白色结晶性粉末闪    点157 ℃安全性描述S22;S24/25UN危险货物编号1851计算化学数据播报编辑疏水参数计算参考值(XlogP):无氢键供体数量:1氢键受体数量:4可旋转化学键数量:5互变异构体数量:2拓扑分子极性表面积:41.6重原子数量:14表面电荷:0复杂度:212同位素原子数量:0确定原子立构中心数量:0不确定原子立构中心数量:1确定化学键立构中心数量:0不确定化学键立构中心数量:0共价键单元数量:1 [2]药品简介播报编辑适应症1、作为抗肿瘤药,用于恶性淋巴瘤、多发性骨髓瘤、乳腺癌、小细胞肺癌、卵巢癌、神经母细胞瘤、视网膜母细胞瘤、尤因肉瘤、软组织肉瘤以及急性白血病和慢性淋巴细胞白血病等。对睾丸肿瘤、头颈部鳞癌、鼻咽癌、横纹肌瘤、骨肉瘤也有一定疗效。目前多与其他抗癌药组成联合化疗方案。2、作为免疫抑制剂,用于各种自身免疫性疾病,如严重类风湿性关节炎、全身性红斑狼疮、儿童肾病综合征、多发性肉芽肿、天疱疮以及溃疡性结肠炎、特发性血小板减少性紫癜等。也用于器官移植时抗排斥反应,通常与泼尼松、抗淋巴细胞球蛋白合用。3、本药滴眼液可用于翼状胬肉术后、角膜移植术后蚕蚀性角膜溃疡等。用法用量口服:50~100毫克/次,2~3次/日,一疗程总量10~15g。静注:0.2克/次,每日或隔日1次;或0.6~0.8克/次,每周1次,一疗程总量8~10g。不良反应骨髓抑制(最低值1~2周,一般维持7~10天,3~5周恢复)、脱发、消化道反应、口腔炎、膀胱炎,个别报道有肺炎、过量的抗利尿激素(ADH)分泌等。一般剂量对血小板影响不大,也很少引起贫血。此外,环磷酰胺可杀伤精子,但为可逆性。超高剂量时(>120mg/kg)可引起心肌损伤及肾毒性。注意事项本品可引起出血性膀胱炎,要多饮水,必要时可用美司钠拮抗。CTX大量给药时应注意膀胱炎,对于有痛风病史、泌尿系统结石史或肾功能损害者应慎用。用药禁忌对本品过敏者、妊娠及哺乳期妇女禁用。感染、肝肾功能损害者禁用或慎用。药物相互作用1、CTX可增加血清尿酸水平,与抗痛风药如别嘌醇等同用,应调整抗痛风药的剂量;别嘌醇可增加CTX的骨髓毒性,如同用应密切观察其毒性作用。2、与大剂量巴比妥或皮质激素同用可增加急性毒性。3、与多柔比星同用可增加心脏毒性,多柔比星总剂量不应超过400mg/m。说明:上述内容仅作为介绍,药物使用必须经正规医院在医生指导下进行。药典信息播报编辑来源本品为P-N,N-双(β-氯乙基)]-1-氧-3-氮-2-磷杂环己烷-P-氧化物一水合物,按无水物计算,含C7H15Cl2N2O2P应为98.0%-102.0%。性状本品为白色结晶或结品性粉末,失去结晶水即液化。本品在乙醇中易溶,在水或丙酮中溶解。熔点取本品,不经干燥,依法测定(通则0612),熔点为48.5-52°C。鉴别1、取本品约0.1g与无水碳酸钠1g,置坩埚中混匀,加热熔融后,放冷,加水20mL使溶解,滤过,滤液加硝酸使成酸性后,显氯化物鉴别1的反应与磷酸盐的鉴别反应(通则0301)。2、在含量测定项下记录的色谱图中,供试品溶液主峰的保留时间应与对照品溶液主峰的保留时间一致。3、本品的红外光吸收图谱应与对照的图谱(光谱集218图)一致。检查酸度取本品0.20g,加水10mL使溶解,立即依法测定(通则0631),pH值应为4.5~6.5。溶液的澄清度与颜色取本品0.20g,加水10mL使溶解,溶液应澄清无色,如显浑浊,与1号浊度标准液(通则0902第一法)比较,不得更浓,如显色,与黄色1号标准比色液(通则0901第一法)比较,不得更深。(供注射用)氯化物取本品0.40g,依法检查(通则0801),立即观察,与标准氯化钠溶液7.2mL制成的对照液比较,不得更浓(0.018%)。磷酸盐 取本品0.10g,加水100mL使溶解,加钼酸铵溶液(取钼酸铵2.5g,加水20mL,加热使溶解,另取水50mL,加硫酸28mL,摇匀,放冷,将上述两种溶液混合,摇匀,加水稀释至100mL)4mL,加酸性氯化亚锡溶液(临用前,取酸性氯化亚锡试液1mL,加2mol/L盐酸溶液10mL,摇匀)0.1mL,摇匀,放置10分钟,如显色,与取标准磷酸盐溶液(取磷酸二氢钾适量,加水溶解并稀释制成每1mL中含磷酸5µg的溶液)2mL,加水98mL,同法操作制成的对照溶液比较,不得更深(0.01%)。有关物质 照薄层色谱法(通则0502)试验。 供试品溶液:取本品,加乙醇溶解并稀释制成每1mL中约含20mg的溶液。对照溶液:精密量取供试品溶液适量,用乙醇定量稀释制成每1mL中含0.2mg的溶液。 色谱条件:采用硅胶G薄层板,用丁酮-水-丙酮-无水甲酸(80:12:4:2)为展开剂。测定法:吸取供试品溶液与对照溶液各10µL,分别点于同一薄层板上,展开,在暖气流下晾干后,置110℃加热10分钟。取另一展开缸,在底部放一小烧杯,加等体积的5%高锰酸钾溶液与盐酸,将加热后的薄层板趁热放入此展开缸中,盖上盖子,在氯气中放置2分钟,取出。将薄层板置冷气流下,除去多余的氯气,直至在点样处的下方,滴碘化钾淀粉溶液(取碘化钾0.75g,加水100mL使溶解,加热至沸,边搅拌边加入已加可溶性淀粉0.5g的水35mL,煮沸2分钟)1滴后,薄层板仅显极浅的蓝色(避免薄层板过长时间地置于冷气流下)。喷以碘化钾淀粉溶液,放置5分钟后,立即检视。限度:供试品溶液如显杂质斑点(除原点外),其颜色与对照溶液的主斑点比较,不得更深。水分 取本品,照水分测定法(通则0832第一法1)测定,含水分应为6.0%~7.0%。重金属 取本品1.0g,依法检查(通则0821第一法),含重金属不得过百万分之二十。无菌 取本品,用适宜溶剂溶解后,经薄膜过滤法处理 ,依法检查(通则1101),应符合规定。(供无菌分装用)含量测定照高效液相色谱法(通则0512)测定。供试品溶液 取本品约25mg,精密称定,置50mL量瓶中,加流动相溶解并稀释至刻度,摇匀。对照品溶液 取环磷酰胺对照品约25mg,精密称定,置50mL量瓶中,加流动相溶解并稀释至刻度,摇匀。色谱条件 用十八烷基硅烷键合硅胶为填充剂,以乙腈-水(36:65)为流动相,检测波长为195nm,进样体积为20µL。系统适用性要求 理论板数按环磷酰胺峰计算不低于2000。测定法 精密量取供试品溶液与对照品溶液,分别注入液相色谱仪,记录色谱图。按外标法以蜂面积计算。类别抗肿瘤药。贮藏遮光,密封(供口服用)或严封(供注射用),在30℃以下保存。制剂1、环磷酰胺片。2、注射用环磷酰胺。 [3]新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000

KOA框架编程3-ctx的使用_编程 ctx-CSDN博客

>

KOA框架编程3-ctx的使用_编程 ctx-CSDN博客

KOA框架编程3-ctx的使用

最新推荐文章于 2023-06-07 20:47:01 发布

独行侠_阿涛

最新推荐文章于 2023-06-07 20:47:01 发布

阅读量267

收藏

点赞数

分类专栏:

前端0-1

# KOA从0到1

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/wltsysterm/article/details/118979433

版权

前端0-1

同时被 2 个专栏收录

61 篇文章

18 订阅

¥49.90

¥99.00

订阅专栏

超级会员免费看

KOA从0到1

26 篇文章

1 订阅

¥29.90

¥99.00

订阅专栏

超级会员免费看

目录

背景

ctx的使用

概念

API

ctx.request

ctx.response

ctx.throw([status], [msg], [properties])

了解本专栏

订阅专栏 解锁全文

超级会员免费看

优惠劵

独行侠_阿涛

关注

关注

0

点赞

0

收藏

觉得还不错?

一键收藏

打赏

知道了

0

评论

KOA框架编程3-ctx的使用

目录背景ctx的使用概念APIctx.requestctx.responsectx.throw([status], [msg], [properties])Request 别名Response 别名背景上一篇文章,我们讲解了路由的基本使用,但是大家肯定非常疑惑,为啥没有演示参数的获取,以及更多的其他的跟路由相关的内容。其实这块内容非常多,而且都是跟ctx强相关,所以笔者单独起一篇文章来写。ctx的使用概念上下文(Context)就是ctx。Ko

复制链接

扫一扫

专栏目录

订阅专栏

koa2-http-proxy-middleware:koa2 http代理中间件

02-03

const koaBodyparser = require ( 'koa-bodyparser' ) const httpProxy = require ( 'koa2-http-proxy-middleware' ) // 因中间件中需要解析body中的参数,故先添加该中间件 app . use ( koaBodyparser ( ) ) // api

Go 语言中 Context 的作用和使用方法详解

最新发布

ZNBase的博客

06-27

771

父节点过期时,所有的子孙节点必须同时关闭。函数都接收一个 Context 类型的 parent,并返回一个 Context 类型的值,这样就层层创建除不同的 Context,子节点是从复制父节点得到,并且根据接收参数设定子节点的一些状态值,接着就可以将子节点传递给下层的 goroutine 了。上图是 Sink 类数据目标的伪代码,producers 是用来写文件的写入器,in 是用来接受上一个数据流的通道,ctx 是 Go 的上下文,producers 写文件数据也是一个单独的协程。

参与评论

您还未登录,请先

登录

后发表或查看评论

Koa封装的ctx对象具体详解

03-11

8517

koa2和promise、async-await密切相关,如果对promise、async-await还不是很清楚的同学可以参考小睿的这篇文章

一、框架目录

koa/

|

| - context.js

|

| - request.js

|

| - response.js

|

·- application.js

二、介绍

首先我们通过Koa包导入的是一个类(Express中是...

koa中的ctx里面是什么

weixin_36557877的博客

03-02

311

koa中的ctx里面是什么

在Koa2中,ctx.request.body和ctx.query的主要区别

m0_51354601的博客

04-23

2410

以下是获取请求体中的参数的示例代码。在Koa2中,需要使用koa-bodyparser中间件来解析请求体,然后使用ctx.request.body属性来获取请求体中的参数。ctx.query用于获取URL查询参数,而ctx.request.body用于获取请求体中的参数。开头,&连接的键值对参数。在Koa2中,ctx.request.body和ctx.query的主要区别在于获取参数的位置不同。对象中的属性名就是参数的键,属性值就是参数的值。以上是Koa2中获取URL查询参数和请求体参数的示例代码,

Node服务器 - koa框架

weixin_56663198的博客

06-07

1021

1 koa的基本使用

2 koa的参数解析

3 koa响应和错误

4 koa静态服务器

5 koa的源码解析

6 和express对比

koa2实战学习(一)---koa介绍+ctx介绍

jonesfee的博客

07-29

4637

Koa介绍

koa是node.js的web框架,koa的前辈是express。koa也是由express的原班人马打造

为什么选择koa2?

Express主要采用ES5的语法,异步操作通过回调函数处理,因此会出现‘回调地狱’。

koa采用ES6的Generator函数+yield语句+Promise语句来处理异步操作。

koa2采用ES7中的async/await+Promise来处理异步操作...

koa2-swagger-ui:Swagger UI作为Koa v2中间件

02-03

koa2-swagger-ui 通过koa v2应用将swagger ui托管在给定目录中 灵感来源: 用于特定的路线 用于使用车把驱动的index.html从node_modules提供文件 安装 npm install koa2-swagger-ui --save 配置 有关更多...

http-auth-koa:Koa框架与http-auth模块的集成

02-03

http-auth-koa 与模块的集成。 安装 通过git(或下载的tarball): $ git clone git://github.com/http-auth/http-auth-koa.git 通过 : $ npm install http-auth-koa 用法 // Authentication module. const ...

koa2-vue-boilerplate:使用 koa2 和 vue 的管理应用程序模板

05-30

Koa2-vue-样板使用 koa2 和 vue 的管理应用程序模板。 这个样板克隆使用构建,基于环境确保您的开发机器上安装了 Node.js v6 或更新版本和 npm。 因为会更好节点 ^6.0.0 npm ^5.0.0克隆这个仓库 $ git clone ...

koa-react-router:用于koa 2的react-router中间件

02-03

npm install koa-react-router react react-dom react-router --save 注意: react react-dom和react-router都是koa-react-router peerDependencies 。 可以将koa-react-router轻松安装在koa 2应用程序中,如下所...

关于编程中Context的理解

hey Man

03-05

9328

前言在编程的过程中,经常看到别人的源码中使用Context。经过一段时间的实践,谈谈个人对其的理解。正文是什么

Context 指做一件事情的背景/环境/上下文/所需要的必要的数据

AppContext 应用上下文,包含整个App运行期间必要的数据

UserContext 用户上下文,包含一个User的上下文数据

一个经典的Context例子:

在一个操作系统中,包含多个进程,每个进程包含多个线程

ctx简介

aoqiaotan2763的博客

01-31

578

啥也不说,直接上图:

转载于:https://www.cnblogs.com/superAnny/p/8392045.html

C/C++ ctx 是什么意思

weifc-wei 的博客

03-08

2564

ctx:

上下文

函数指针的参数, 一般是自己自定义的结构体

void (*handler)(void* data);

koa源码分析(二)ctx

weixin_34360651的博客

03-23

379

2019独角兽企业重金招聘Python工程师标准>>>

...

Koa

qq_25072517的博客

11-03

680

Node 主要用在开发 Web 应用。这决定了使用 Node,往往离不开 Web 应用框架。

Koa 就是一种简单好用的 Web 框架。它的特点是优雅、简洁、表达力强、自由度高。本身代码只有1000多行,所有功能都通过插件实现,很符合 Unix 哲学。

本文从零开始,循序渐进,教会你如何使用 Koa 写出自己的 Web 应用。每一步都有简洁易懂的示例,希望让大家一看就懂。

java ctx_Koa源码阅读笔记(4) -- ctx对象

weixin_34832809的博客

03-04

405

起因前两天终于把自己一直想读的Koa源代码读了一遍。今天就要来分析Koa的ctx对象,也就是在写中间件和处理请求和响应时的那个this对象。而这个this对象,也是和Express的重要区别之一。不用再区分req,res(虽然还是得知道),一个this对象就能调用所有方法。在实际开发中,是非常便利的。Koa1和Koa2的区别在这儿则需要谈一谈Koa1和Koa2调用this对象的区别。Koa1在调用...

(node.js)nodejs koa ctx=> 报错

swimming_in_IT_的博客

09-24

1382

以前开发的时候,一直使用的是express()框架进行开发,最近老是看到koa框架,貌似很牛逼就学了下,然而在自己写完第一个程序的时候,程序就开始报错,如下:

(node.js)nodejs koa ctx=> 报错

at exports.runInThisContext (vm.js:69:16)

at Module._compile (module.js:432:25)

at Ob

简单记录下扩展egg框架中ctx的属性的方法

水痕

02-15

2729

一、直接使用扩展的方式

1、在app文件夹下创建一个extend的文件夹,并且在下面创建一个context.js的文件

2、context.js文件使用os模块获取当前操作系统的信息

'use strict';

const os = require('os');

module.exports = {

get info() {

const data = {

memory: os.totalmem() / 1024 / 1024 / 1024 + 'G',

pla

Koa-router异步返回ctx.body失效的问题

05-24

在使用 Koa-router 进行异步处理时,需要注意以下几点: 1. 在路由中间件函数中使用 `await` 关键字来等待异步操作完成,如数据库查询、API 请求等。 2. 如果使用了异步函数处理路由,需要在路由函数前面加上 `...

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

独行侠_阿涛

CSDN认证博客专家

CSDN认证企业博客

码龄8年

暂无认证

455

原创

2万+

周排名

7497

总排名

99万+

访问

等级

1万+

积分

402

粉丝

498

获赞

329

评论

1287

收藏

私信

关注

热门文章

mysql之validate_password_policy

51087

idea jdk版本设置

44363

Mybatis-plus id_worker uuid区别

29997

GIT修改账号密码重新登录和保存密码

27686

super(Net, self).__init__()

23001

分类专栏

图书馆管理系统

付费

14篇

前端0-1

付费

61篇

webpack从0到1

付费

12篇

KOA从0到1

付费

26篇

node-excel从0到1

付费

12篇

Electron

6篇

html从0到1

4篇

puppeteer从0到1

1篇

前端问题

45篇

photoshop

2篇

前端神器

6篇

window10

2篇

BAT(批处理)

2篇

解决方案

8篇

2021阶段

React从0到1

3篇

GO

1篇

ELK

5篇

移动端开发

MUI-H5-APP开发专栏

3篇

UniApp

12篇

MUI

15篇

mpvue

1篇

python

39篇

Django

selinium从0到1

25篇

服务

1篇

docker从0到1

13篇

kubernetes

25篇

SRS直播服务器从0到1

11篇

Jenkins从0到1

4篇

中间件和服务器

1篇

Linux和Aix

14篇

Nginx

4篇

weblogic

1篇

gitbook

6篇

数据库

9篇

git

6篇

Redis

5篇

JAVA

84篇

其他

21篇

最新评论

[spring处理webservice报文] 4 soap报文解析

勇敢的小提莫:

没事了,我已经知道怎么获取标签里面自定义的参数的值了。

[spring处理webservice报文] 4 soap报文解析

勇敢的小提莫:

请问如果是abc这种,我想获取info的值,这个要怎么获取,我看了几个方法,都没有获取到标签里面参数的方法,只能获取到每个节点的名称和节点里面的值

python中的argparse模块(参数解析) --和没有--有什么区别

故此寒烟:

感觉不带-/--的是必须给值,直接输入就行。-/--的给值时候必须要声明参数名。

bat(批处理)处理特殊符号(感叹号,百分号)等

qq_36825469:

这个方案我试了,win10系统可以运行,但是放在win7上执行包含!的行就返回: FINDSTR write error,其他正常 请问这个怎么处理?

[spring处理webservice报文] 1 spring如何搭建webservice服务

weixin_52587755:

spring mvc 能实现吗? 客户要webservice 的方式调用我们的接口

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

Electron[5] 渲染进程和主进程

Electron:白话Electron开发桌面端应用

Electron[4] Electron最简单的打包实践

2023年7篇

2022年39篇

2021年203篇

2020年42篇

2019年15篇

2018年125篇

2017年28篇

目录

目录

分类专栏

图书馆管理系统

付费

14篇

前端0-1

付费

61篇

webpack从0到1

付费

12篇

KOA从0到1

付费

26篇

node-excel从0到1

付费

12篇

Electron

6篇

html从0到1

4篇

puppeteer从0到1

1篇

前端问题

45篇

photoshop

2篇

前端神器

6篇

window10

2篇

BAT(批处理)

2篇

解决方案

8篇

2021阶段

React从0到1

3篇

GO

1篇

ELK

5篇

移动端开发

MUI-H5-APP开发专栏

3篇

UniApp

12篇

MUI

15篇

mpvue

1篇

python

39篇

Django

selinium从0到1

25篇

服务

1篇

docker从0到1

13篇

kubernetes

25篇

SRS直播服务器从0到1

11篇

Jenkins从0到1

4篇

中间件和服务器

1篇

Linux和Aix

14篇

Nginx

4篇

weblogic

1篇

gitbook

6篇

数据库

9篇

git

6篇

Redis

5篇

JAVA

84篇

其他

21篇

目录

评论

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

打赏作者

独行侠_阿涛

你的鼓励将是我创作的最大动力

¥1

¥2

¥4

¥6

¥10

¥20

扫码支付:¥1

获取中

扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

pytroch中ctx和self的区别_ctx直接保存-CSDN博客

>

pytroch中ctx和self的区别_ctx直接保存-CSDN博客

pytroch中ctx和self的区别

最新推荐文章于 2022-10-29 23:42:02 发布

littlehaes

最新推荐文章于 2022-10-29 23:42:02 发布

阅读量1.1w

收藏

68

点赞数

35

分类专栏:

Pytorch

文章标签:

python

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/littlehaes/article/details/103828130

版权

Pytorch

专栏收录该内容

12 篇文章

4 订阅

订阅专栏

welcome to my blog

阅读某个pytorch模型源代码时碰见的ctx参数, 查阅了资料大概总结一下

ctx是context的缩写, 翻译成"上下文; 环境"ctx专门用在静态方法中self指的是实例对象; 而ctx用在静态方法中, 调用的时候不需要实例化对象, 直接通过类名就可以调用, 所以self在静态方法中没有意义自定义的forward()方法和backward()方法的第一个参数必须是ctx; ctx可以保存forward()中的变量,以便在backward()中继续使用, 下一条是具体的示例ctx.save_for_backward(a, b)能够保存forward()静态方法中的张量, 从而可以在backward()静态方法中调用, 具体地, 下面地代码通过a, b = ctx.saved_tensors重新得到a和bctx.needs_input_grad是一个元组, 元素是True或者False, 表示forward()中对应的输入是否需要求导, 比如ctx.needs_input_grad[0]指的是下面forwad()代码中indices是否需要求导

class SpecialSpmmFunction(torch.autograd.Function):

"""

Special function for only sparse region backpropataion layer.

"""

# 自定义前向传播过程

@staticmethod

def forward(ctx, indices, values, shape, b):

assert indices.requires_grad == False

a = torch.sparse_coo_tensor(indices, values, shape)

ctx.save_for_backward(a, b)

ctx.N = shape[0]

return torch.matmul(a, b)

# 自定义反向传播过程

@staticmethod

def backward(ctx, grad_output):

a, b = ctx.saved_tensors

grad_values = grad_b = None

if ctx.needs_input_grad[1]:

grad_a_dense = grad_output.matmul(b.t())

edge_idx = a._indices()[0, :] * ctx.N + a._indices()[1, :]

grad_values = grad_a_dense.view(-1)[edge_idx]

if ctx.needs_input_grad[3]:

grad_b = a.t().matmul(grad_output)

return None, grad_values, None, grad_b

ctx还能调用很多方法, pytorch1.3.1源码中竟然说"no doc", 没有相关的文档…

class _FunctionBase(object):

# no doc

@classmethod

def apply(cls, *args, **kwargs): # real signature unknown

pass

def register_hook(self, *args, **kwargs): # real signature unknown

pass

def _do_backward(self, *args, **kwargs): # real signature unknown

pass

def _do_forward(self, *args, **kwargs): # real signature unknown

pass

def _register_hook_dict(self, *args, **kwargs): # real signature unknown

pass

def __init__(self, *args, **kwargs): # real signature unknown

pass

@staticmethod # known case of __new__

def __new__(*args, **kwargs): # real signature unknown

""" Create and return a new object. See help(type) for accurate signature. """

pass

dirty_tensors = property(lambda self: object(), lambda self, v: None, lambda self: None) # default

metadata = property(lambda self: object(), lambda self, v: None, lambda self: None) # default

needs_input_grad = property(lambda self: object(), lambda self, v: None, lambda self: None) # default

next_functions = property(lambda self: object(), lambda self, v: None, lambda self: None) # default

non_differentiable = property(lambda self: object(), lambda self, v: None, lambda self: None) # default

requires_grad = property(lambda self: object(), lambda self, v: None, lambda self: None) # default

saved_tensors = property(lambda self: object(), lambda self, v: None, lambda self: None) # default

saved_variables = property(lambda self: object(), lambda self, v: None, lambda self: None) # default

to_save = property(lambda self: object(), lambda self, v: None, lambda self: None) # default

优惠劵

littlehaes

关注

关注

35

点赞

68

收藏

觉得还不错?

一键收藏

知道了

1

评论

pytroch中ctx和self的区别

welcome to my blog阅读某个pytorch模型源代码时碰见的ctx参数, 查阅了资料大概总结一下ctx貌似是context的缩写, 翻译成"上下文; 环境"ctx专门用在静态方法中self指的是实例对象; 而ctx用在静态方法中, 调用的时候不需要实例化对象, 直接通过类名就可以调用, 所以self在静态方法中没有意义ctx.save_for_backward(a, b...

复制链接

扫一扫

专栏目录

Pycharm中切换pytorch的环境和配置

12-22

pytorch安装

注:在训练模型的时候,有时候可能需要不同版本的 torch和torchvision,所以需要配置不同的环境。anconda和pycharm自行安装,接下来在pycharm终端pip安装。

1. torch和torchvision下载

进入pytorch官网,[https://pytorch.org]

进入右下角的网站下载,找到需要的版本,我的版本如下

1.3.0-版本 cp37-python版本3.7 win-Windows系统

2. pycharm终端安装

(1)首先创建一个环境

conda create -n pytorch_1.3 python=3.7

注:有

pytorch中文文档.pdf

11-15

pytorch

1 条评论

您还未登录,请先

登录

后发表或查看评论

draw.io chrome ctx

07-13

draw.io chrome ctx

google draw ext ctx

07-13

google draw ext ctx

Python的神经网络梯度优化

昊大侠的博客

07-12

1524

目录前言二级目录三级目录原理举例

前言

以下内容基于 Pytorch 的学习实践总结并参考了 CSDN 及 TouTube 博主的经验。

我们有以下共识

神经网络通过构建计算图实现数据的有序流动,如前向传播(forward)和反向传播(backward),计算图是一种将计算流程化的方法。在计算图中,计算被表示成有向图,其中每个节点就是数据,表示为一个变量(variable),这一变量可以是标量(scalar),向量(vector),矩阵(matrix),张量(tensor)任意形式;前向传播很好理解,节点

Pytorch框架的学习(4)

qq_40694323的博客

09-08

1153

1.Pytorch与autograd(自动计算梯度)-导数-方向导数-偏导数-梯度的概念

2.梯度与机器学习中的最优解

3.Variable is Tensor(案例中见)

4.如何计算梯度

5.关于Autograd的几个概念

torch.autograd.Function的子类并实现forward和backward函数

Pytorch实现的卷积算子

whaosoft143ai的博客

10-29

1239

本文的一个很大目的,就是让我自己学会怎么扩展Pytorch的算子,从官方文档了解到,需要实现一个继承的函数,并且实现forward和backwardforward和backward函数的第一个参数都是ctx,就是context的意思,与self类似,一般如果在backward过程中要用到forward的参数,在forward时就要调用保存起来;forward有多少个输入,backward就要有多少个输出,这个看计算图就能明白了,如果不需要求梯度的入边,可以返回None;梯度求解。 whaosoft aiot

Smoothing Adversarial Domain Attack and p-Memory Reconsolidation for Cross-Domain简单阅读整理

qq_34124009的博客

09-27

350

Smoothing Adversarial Domain Attack and p-Memory Reconsolidation for Cross-Domain简单阅读整理

torch的一些函数

m0_46861439的博客

04-21

676

0. 长期更新,看到奇怪的弄懂了就写

ref:

https://www.bilibili.com/video/BV1wQ4y1q7Bm/?spm_id_from=333.788

https://blog.csdn.net/m0_46384757/article/details/120509481

1.torch.gather

https://www.jianshu.com/p/b7d8d3c26f2d

上面的文章告诉我举例子的时候不要用1m或m1

也不要用n*n这种,不然歧义很多

这里是按我的理解写一遍,为

PyTorch——自注意力(self-attention)机制实现(代码详解)

热门推荐

beilizhang的博客

03-28

7万+

参考链接

https://www.bilibili.com/video/BV1JE411g7XF?p=54

https://arxiv.org/abs/1706.03762

https://blog.csdn.net/qq_36653505/article/details/83375160

简述自注意力机制(self-attention)

self-attention可以视为一个特征提取层,给定输入特征a1,a2,⋅⋅⋅ana^{1},a^{2},\cdot \cdot \cdot a^{n}a1,a2

pytorch_memlab:在pytorch中分析和检查内存

05-04

pytorch_memlab 一个简单,准确的pytorch CUDA内存管理实验室,它由有关内存的不同部分组成: ...对于新手和有经验的程序员,pytorch中的内存不足错误经常发生。 一个普遍的原因是,大多数人并没有真正了解pytorch和

PyTorch 中文文档

12-02

PyTorch 中文文档 PyTorch 中文文档 PyTorch 中文文档

详解PyTorch中的ModuleList和Sequential

06-01

里面有nn.Sequential nn.Modulelist的例子

成功解决 pytorch 向量归一化, 向量除以模长

littlehaes的博客

12-18

1万+

welcome to my blog

问题描述: 想对向量归一化, 或者说 让向量除以模长

解决方法, 看示例

import torch

import torch.nn.functional as F

a = torch.arange(9, dtype= torch.float)

a = a.reshape((3,3))

print(a)

'''

tensor([[0., 1., 2.],

...

pytorch tensor.all() tensor.any()

littlehaes的博客

01-12

1万+

welcome to my blog

tensor.any()功能: 如果张量tensor中存在一个元素为True, 那么返回True; 只有所有元素都是False时才返回False

import torch

a = torch.tensor([True,True,False])

print(a.any())

# 打印结果 tensor(True)

b = torch.tensor([False...

pytorch基本数学运算 加法 减法 乘法 除法 指数 对数 绝对值

littlehaes的博客

01-02

1万+

welcome to my blog

加法

a = torch.Tensor(np.arange(6).reshape((2,3)))

'''

a的值

tensor([[0., 1., 2.],

[3., 4., 5.]])

'''

b = torch.Tensor(np.arange(6).reshape((2,3)))

'''

b的值

tensor([[0., 1., 2.],...

pytorch中的广播机制

littlehaes的博客

01-02

1万+

welcome to my blog

pytorch中的广播机制和numpy中的广播机制一样, 因为都是数组的广播机制

两个维度不同的Tensor可以相乘, 示例

a = torch.arange(0,6).reshape((6,))

'''

tensor([0, 1, 2, 3, 4, 5])

shape: torch.Size([6])

ndim: 1

'''

b = torch.arang...

/pytorch/aten/src/THCUNN/ClassNLLCriterion.cu:106: void cunn_ClassNLLCriterion_updateOutput_kernel(D

littlehaes的博客

10-29

1万+

welcome to my blog

头一次使用pytorch, 调用交叉熵损失函数nn.CrossEntropyLoss()的时候报错

/pytorch/aten/src/THCUNN/ClassNLLCriterion.cu:106: void cunn_ClassNLLCriterion_updateOutput_kernel(Dtype *, Dtype *, Dtype *, long ...

CNN和领域自适应结合进行样本迁移pytorch

最新发布

06-08

可以使用PyTorch中的DANN(Domain-Adversarial Neural Networks)模型实现CNN和领域自适应结合进行样本迁移。DANN模型在训练过程中,通过引入一个领域分类器来判别输入数据的领域信息,再通过反向传播来最小化领域分类器的误差和原始任务分类器的误差,从而实现领域自适应。

以下是一个简单的示例代码:

```python

import torch

import torch.nn as nn

import torch.optim as optim

import torch.nn.functional as F

class CNN(nn.Module):

def __init__(self):

super(CNN, self).__init__()

self.conv1 = nn.Conv2d(3, 64, kernel_size=5, padding=2)

self.bn1 = nn.BatchNorm2d(64)

self.conv2 = nn.Conv2d(64, 128, kernel_size=5, padding=2)

self.bn2 = nn.BatchNorm2d(128)

self.fc1 = nn.Linear(128*8*8, 256)

self.fc2 = nn.Linear(256, 10)

def forward(self, x):

x = F.relu(self.bn1(self.conv1(x)))

x = F.max_pool2d(x, 2)

x = F.relu(self.bn2(self.conv2(x)))

x = F.max_pool2d(x, 2)

x = x.view(-1, 128*8*8)

x = F.relu(self.fc1(x))

x = self.fc2(x)

return x

class DANN(nn.Module):

def __init__(self, cnn):

super(DANN, self).__init__()

self.cnn = cnn

self.domain_classifier = nn.Sequential(

nn.Linear(128*8*8, 1024),

nn.ReLU(),

nn.Dropout(),

nn.Linear(1024, 1024),

nn.ReLU(),

nn.Dropout(),

nn.Linear(1024, 1)

)

def forward(self, x, alpha):

features = self.cnn(x)

reverse_features = ReverseLayerF.apply(features, alpha)

domain_output = self.domain_classifier(reverse_features)

class_output = F.softmax(features, dim=1)

return domain_output, class_output

class ReverseLayerF(torch.autograd.Function):

@staticmethod

def forward(ctx, x, alpha):

ctx.alpha = alpha

return x

@staticmethod

def backward(ctx, grad_output):

output = grad_output.neg() * ctx.alpha

return output, None

# 定义数据加载器

train_loader = torch.utils.data.DataLoader(

torchvision.datasets.CIFAR10(root='./data', train=True, download=True,

transform=torchvision.transforms.Compose([

torchvision.transforms.RandomHorizontalFlip(),

torchvision.transforms.RandomCrop(32, 4),

torchvision.transforms.ToTensor(),

torchvision.transforms.Normalize(

(0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010))

])),

batch_size=128, shuffle=True, num_workers=2)

test_loader = torch.utils.data.DataLoader(

torchvision.datasets.CIFAR10(root='./data', train=False, download=True,

transform=torchvision.transforms.Compose([

torchvision.transforms.ToTensor(),

torchvision.transforms.Normalize(

(0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010))

])),

batch_size=128, shuffle=False, num_workers=2)

# 定义模型、优化器和损失函数

cnn = CNN()

model = DANN(cnn)

optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)

criterion = nn.CrossEntropyLoss()

# 开始训练

for epoch in range(100):

for i, (inputs, labels) in enumerate(train_loader):

# 梯度清零

optimizer.zero_grad()

# 计算领域标签,0表示源域,1表示目标域

domain_labels = torch.zeros(inputs.size(0))

domain_labels[inputs.size(0)//2:] = 1

# 计算领域自适应参数alpha

alpha = 0.1 * epoch / 100

# 前向传播

domain_outputs, class_outputs = model(inputs, alpha)

# 计算损失函数

class_loss = criterion(class_outputs, labels)

domain_loss = criterion(domain_outputs.squeeze(), domain_labels)

loss = class_loss + domain_loss

# 反向传播和优化

loss.backward()

optimizer.step()

if i % 100 == 0:

print('Epoch [%d/%d], Iter [%d/%d], Class Loss: %.4f, Domain Loss: %.4f'

% (epoch+1, 100, i+1, len(train_loader), class_loss.item(), domain_loss.item()))

# 在测试集上测试准确率

correct = 0

total = 0

with torch.no_grad():

for inputs, labels in test_loader:

_, outputs = model(inputs, 0)

_, predicted = torch.max(outputs.data, 1)

total += labels.size(0)

correct += (predicted == labels).sum().item()

print('Test Accuracy of the model on the test images: %.4f %%' % (100 * correct / total))

```

在这个示例代码中,我们首先定义了一个CNN模型,然后用DANN模型将其包装起来,形成一个领域自适应模型。在训练过程中,我们使用了PyTorch中的反向传播函数`torch.autograd.Function`来实现领域自适应参数alpha的自动求导。最后,在训练结束后,在测试集上测试了模型的准确率。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

littlehaes

CSDN认证博客专家

CSDN认证企业博客

码龄8年

暂无认证

668

原创

2万+

周排名

217万+

总排名

312万+

访问

等级

2万+

积分

489

粉丝

2630

获赞

985

评论

3993

收藏

私信

关注

热门文章

由于找不到vcruntime140_1.dll,无法继续执行代码

629302

箱线图怎么看

127356

pandas统计某一列中各个值的出现次数

110625

成功解决 ProxyError: Conda cannot proceed due to an error in your proxy configuration

109222

成功解决 git设置http代理 https代理 取消代理

72786

分类专栏

Git

26篇

Spring

12篇

MySQL

6篇

Docker

4篇

Pandas

4篇

Pytorch

12篇

设计模式

1篇

计算机网络

Tomcat

1篇

Kafka

1篇

Redis

3篇

ElasticSearch

2篇

JVM

1篇

Java

27篇

随笔

86篇

Python

50篇

数学

30篇

深度学习

16篇

Linux

68篇

最新评论

win10启动后黑屏很久才进入登录界面

木南DEAREST:

我的没管用

win10启动后黑屏很久才进入登录界面

weixin_45835068:

牛的,开机黑屏的问题一下就解决了

tmux突出显示窗格,加粗窗格边界

fgc346:

感谢博主,解决了我的问题。

成功解决 git设置http代理 https代理 取消代理

ajhshd:

压根就没有效果 你吧代理关了他 还是能连接 自动跳过了

visual studio 下载慢的解决办法

kingluna:

开了tun依旧是10kb,用了作者方法成功了

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

win11截图快捷键 自定义区域

解决:IOS无法使用微软账号登录,显示“无法登录,请使用IMAP并重新登录“

win10启动后黑屏很久才进入登录界面

2022年1篇

2021年2篇

2020年198篇

2019年396篇

2018年84篇

目录

目录

分类专栏

Git

26篇

Spring

12篇

MySQL

6篇

Docker

4篇

Pandas

4篇

Pytorch

12篇

设计模式

1篇

计算机网络

Tomcat

1篇

Kafka

1篇

Redis

3篇

ElasticSearch

2篇

JVM

1篇

Java

27篇

随笔

86篇

Python

50篇

数学

30篇

深度学习

16篇

Linux

68篇

目录

评论 1

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

CTX是什么药

CTX是什么药

有来医生

CTX是什么药

徐英辉肿瘤中心肿瘤科副主任医师

吉林大学第一医院

三甲 全国第57

CTX即环磷酰胺,属于氮芥类药物,是临床中常用的免疫抑制剂,也常作为抗肿瘤的化疗药物。同时由于CTX在体内可转化成具有细胞毒性的烷基化合物,因此可引起脱发、恶心、呕吐、胎儿畸形等毒副反应:一、临床应用:1、抗肿瘤治疗:CTX在体内可经肝内氧化为4-羟基环磷酰胺和醛基磷酰胺,而醛基磷酰胺性质不稳定,可分解为具有强烈癌细胞毒性的磷酰氮芥和丙烯醛,起到抗肿瘤作用。临床中常用于治疗大肠癌、乳腺癌、卵巢癌、前列腺癌、软组织肉瘤、恶性淋巴癌、淋巴细胞白血病、多发性骨髓瘤、骨肉瘤、小细胞肺癌、鼻咽癌、神经母细胞瘤等多种疾病,也常与甲氨蝶呤等其他抗肿瘤药物联合用药;2、免疫抑制治疗:CTX可在体内转化成磷酰胺和丙烯醛,磷酰胺作用于细胞DNA而起到毒性作用,丙烯醛经过肾脏排泄,可能诱发尿路上皮损伤而导致出血性膀胱炎。但在早期造血干细胞等醛脱氢酶水平较高的细胞中,醛磷酰胺转化为一种惰性物质,并能够通过肾脏清除,因此不受CTX毒性损伤,常用于治疗再生障碍性贫血、难治性自身免疫性溶血性疾病、过敏性紫癜、系统性红斑狼疮、肾病综合征、重症狼疮性肾炎、类风湿关节炎等自身免疫性疾病。二、毒副作用:任何给药方式均可造成毒副反应,且随药物剂量增加而加重,但停药后多可自愈。除一般的恶心、呕吐、脱发、便秘、腹泻等化疗常见毒副反应外,CTX还可引起骨髓抑制、骨质疏松、心脏毒性、出血性膀胱炎、生殖系统损害、胎儿畸形等毒副反应,因此在临床中需要严格控制用量,且妊娠期、哺乳期、肝肾功能损害等情况者禁用。此外,CTX还可用于治疗流行性乙型脑膜炎、重症肝炎、尖锐湿疣、慢性活动性肝炎等疾病。但具体的用药方案,需要由医生根据患者的病情决定,也常进行联合用药。

2021-11-04 发布

本内容不能代替面诊,如有不适请尽快就医

展开全文

收起全文

导航

有来头条

医院医生

疾病百科

科普视频

专家文章

名医问答

签约医生

发现

「骨松指标」临床意义汇总——“骨转换标志物”篇_骨转换标志物_医脉通

「骨松指标」临床意义汇总——“骨转换标志物”篇_骨转换标志物_医脉通

最新进展

登录

麦粒:0

「骨松指标」临床意义汇总——“骨转换标志物”篇

2022-09-07

来源:医脉通

关键词:

骨转换标志物

发表评论

医脉通编辑整理,未经授权请勿转载。 引言:Ca/Cr、TRACP、CTX……这些「骨松实验室检查指标」有怎样的临床意义? 骨质疏松实验室诊断是通过对血液、组织液、细胞、蛋白、活体组织等进行实验分析,科学评价和判断全身骨代谢的动态变化及骨代谢的活性,对骨质疏松临床诊断与鉴别诊断、疗效观察,以及骨代谢疾病的调控机制研究具有重要意义。骨质疏松的实验室检查项目包括基本实验室检查项目、骨转换指标和鉴别诊断检查项目三类: 1.基本实验室检查项目:血常规、尿常规、肝功能、肾功能、血清蛋白电泳、血钙、25羟维生素D3、血磷、尿钙、尿钠。2.骨转换指标: 骨特异性碱性磷酸酶、骨钙素、I型原胶原C-端前肽/I型原胶原N-端前肽、空腹2h尿钙/肌酐比值、抗酒石酸酸性磷酸酶、血清/尿I型胶原C-末端肽交联、尿I型胶原N-末端肽交联。 3.鉴别诊断检查项目: 血沉、C-反应蛋白、性激素六项、1,25二羟基维生素D3、甲状旁腺素、甲状腺功能、尿游离皮质醇、血气分析、尿本周蛋白、血尿轻链。 上述检查指标有怎样的临床意义呢?今天我们着重讲一讲「骨转换标志物」。 骨特异性碱性磷酸酶 骨特异性碱性磷酸酶(BALP)是成骨细胞的一种细胞外酶,其主要作用是在成骨过程中水解磷酸酶,为羟基磷灰石的沉积提供磷酸,同时水解焦磷酸盐,有利于成骨。 临床意义:慢性肾病、肿瘤骨转移、多发性骨髓瘤、高转换型骨质疏松、骨折,血清BALP明显升高。 血清骨钙素 骨钙素(OC)是反映骨形成的特异性生化指标,参与基质的矿化过程及成骨细胞分化,维持骨的正常矿化速率,抑制软骨的矿化速率,并抑制骨异常的羟磷灰石结晶形成。 临床意义: ➤OC浓度升高:提示骨形成速率加快,主要见于儿童生长期、成骨不全、肾功能不全、骨折、变形性骨炎、肿瘤骨转移、低磷血症、甲状腺功能亢进症、甲状旁腺功能亢进症、高转换骨质疏松症、尿毒症、佝偻病、卵巢切除术后等。 ➤OC浓度降低:见于甲状腺功能减退症、肾上腺皮质功能亢进症、长期使用糖皮质激素、肝病、糖尿病患者及孕妇等。 血清I型原胶原C-端前肽/血清I型原胶原N-端前肽 I型前胶原水解,去除其羧基及氨基端的附加肽段,生成原胶原,前胶原去除下来的羧基端附加肽段称I型原胶原 C-端前肽(PICP),氨基端附加肽段称I型原胶原N-端前肽(PINP)。PICP或PINP在血清中的含量反映成骨细胞合成骨胶原的能力,是新骨形成的特异性的敏感指标。 临床意义: ➤血清总PINP升高:骨代谢疾病、肾功能不全患者血清总PINP升高。 ➤血清PICP升高:儿童发育期、妊娠晚期、骨肿瘤、骨转移、骨质疏松症、畸形性骨炎、原发性甲旁亢、骨软化症、酒精性肝炎、绝经后妇女、肺纤维化、严重肝损害等血清PICP升高。 空腹2h尿钙/肌酐比值 尿Ca/Cr比值反映尿钙排泄水平。 临床意义: ➤空腹晨尿Ca/Cr比值间接反映骨代谢功能,可用于原发性骨质疏松症、佝偻病及其他代谢性骨病的辅助诊断和治疗的动态观察。 ➤儿童尿Ca/Cr比值超过正常标准时为特发性高尿钙症高风险人群,需进一步检查。 ➤随妊娠进展尿Ca/Cr比值逐渐增加,尿Ca/Cr比值降低可作为诊断妊娠高血压的客观依据之一。 血清抗酒石酸酸性磷酸酶 抗酒石酸酸性磷酸酶(TRACP)是酸性磷酸酶6种同工酶中的一种。在正常人血清中,TRACP以两种不同的糖基化形式存在,即TRACP-5a和TRACP-5b,TRACP-5b作为第2代骨吸收标志物,是一个有特异和高敏感度的骨吸收指标。 临床意义: ➤TRACP增高:见于原发性甲状旁腺功能亢进症、慢性肾功能不全、畸形性骨炎、肿瘤骨转移、高转换型骨质疏松等; ➤TRACP降低:见于甲状腺功能减退症。 血清\尿I型胶原C-末端肽交联 I型胶原C-末端肽交联(CTX)是使用最为广泛的胶原降解标志物,a-CTX与β-CTX为同型异构体结构,CTX的水平反映了破骨细胞的骨吸收活性。 临床意义:骨质疏松症、Paget病、多发性骨髓瘤和肿瘤骨转移等患者血清CTX水平升高。 尿I型胶原N-末端肽交联 I型胶原N-末端肽交联(NTX)是骨胶原在肝脏中降解后,尿中出现的一种稳定的最终产物,是反映骨吸收的特异和敏感的指标。 临床意义:骨质疏松症、原发性甲状旁腺功能亢进症、畸形性骨炎、甲状腺功能亢进症、肿瘤骨转移和多发性骨髓瘤等都观察到NTX水平升高。 参考资料:张萌萌,徐又佳,侯建明等.骨质疏松实验室诊断及影响因素专家共识2022.中国骨质疏松杂志.2022,28(09):1249-1259.

(本网站所有内容,凡注明来源为“医脉通”,版权均归医脉通所有,未经授权,任何媒体、网站或个人不得转载,否则将追究法律责任,授权转载时须注明“来源:医脉通”。本网注明来源为其他媒体的内容为转载,转载仅作观点分享,版权归原作者所有,如有侵犯版权,请及时联系我们。)

6

收藏

分享

微信扫一扫:分享

微信里点“发现”,扫一下二维码便可将本文分享至朋友圈。

添加表情

热门进展

关注NT-proBNP!国际联盟确定13种糖尿病心血管疾病生物标志物

2024-03-05

10部最新内分泌科指南/共识,一文收入囊中 | 2月指南更新

2024-03-01

甜蜜上“头”?脱发,也可能是糖尿病引起的

2024-02-29

益针双效,立足中国——赛益宁专为中国患者 “量身定制”的双效FRC

2024-03-01

从临床实例谈「亚急性甲状腺炎」治疗过程中应注意的问题|临床必备

2024-03-05

推荐新闻 -- 骨转换标志物

热门话题

雨水节气的诗句有哪些?

全国爱耳日丨科技助听,共享美好生活

惊蛰节气的诗句有哪些?

春季是传染病高发期,常见疾病有哪些?

您要举报的内容为

举报理由:

广告软文

内容质量差

低俗色情

抄袭或未经授权转载

其他

0/100

取消

确认举报

分享

同时添加评论

收藏

分享到我的医脉通

关于我们

联系我们

隐私政策

版权声明

免责声明

公司产品

诚聘英才

网站帮助

(京)网药械信息备字(2022)第00008号

京公网安备11010502036930

京ICP备13043379号-5

京ICP证130463号

©2005-2024 medlive.cn,all rights reserved

Context / 上下文 - ThinkJS 文档

Context / 上下文 - ThinkJS 文档

ThinkJS

官方文档

更新日志

最佳实践

en

3.0

3.0

2.2

2.1

2.0

1.2

快速入门

介绍

快速入门

升级指南

基础功能

运行流程

配置

Context

Middleware

Logic

Controller

View

Router

Adapter

Extend

异步/错误处理

断点调试

模型/数据库

关系数据库

MongoDB

进阶应用

think 对象

启动自定义

Service

Cookie

Session

Cache

日志

多进程

Babel 转译

WebSocket

RESTful API

国际化与本地化

扩展功能

TypeScript

多模块项目

线上部署

定时任务

Context / 上下文

Koa 内置 API

ctx.req

ctx.res

ctx.request

ctx.response

ctx.state

ctx.app

ctx.cookies.get(name, [options])

ctx.cookies.set(name, value, [options])

ctx.throw([msg], [status], [properties])

ctx.assert(value, [msg], [status], [properties])

ctx.respond

ctx.header

ctx.headers

ctx.method

ctx.method=

ctx.url

ctx.url=

ctx.originalUrl

ctx.origin

ctx.href

ctx.path

ctx.path=

ctx.query

ctx.query=

ctx.querystring

ctx.querystring=

ctx.search

ctx.search=

ctx.host

ctx.hostname

ctx.charset

ctx.fresh

ctx.stale

ctx.socket

ctx.protocol

ctx.secure

ctx.ip

ctx.ips

ctx.subdomains

ctx.is(...types)

ctx.accepts(types)

ctx.acceptsEncodings(encodings)

ctx.acceptsCharsets(charsets)

ctx.acceptsLanguages(langs)

ctx.get(field)

ctx.body

ctx.body=

ctx.status

ctx.status=

ctx.message

ctx.message=

ctx.length=

ctx.length

ctx.type

ctx.type=

ctx.headerSent

ctx.redirect(url, [alt])

ctx.attachment([filename])

ctx.set(fields)

ctx.append(field, value)

ctx.remove(field)

ctx.lastModified=

ctx.etag=

框架扩展 API

ctx.module

ctx.controller

ctx.action

ctx.userAgent

ctx.isGet

ctx.isPost

ctx.isCli

ctx.referer(onlyHost)

ctx.referrer(onlyHost)

ctx.isMethod(method)

ctx.isAjax(method)

ctx.isJsonp(callbackField)

ctx.jsonp(data, callbackField)

ctx.json(data)

ctx.success(data, message)

ctx.fail(errno, errmsg, data)

ctx.expires(time)

ctx.config(name, value, m)

ctx.param(name, value)

ctx.post(name, value)

ctx.file(name, value)

ctx.cookie(name, value, options)

ctx.service(name, m, ...args)

ctx.download(filepath, filename)

Context 是 Koa 中处理用户请求中的一个对象,贯穿整个请求生命周期。一般在 middleware、controller、logic 中使用,简称为 ctx。

// 在 middleware 中使用 ctx 对象

module.exports = options => {

// 调用时 ctx 会作为第一个参数传递进来

return (ctx, next) => {

...

}

}

// 在 controller 中使用 ctx 对象

module.exports = class extends think.Controller {

indexAction() {

// controller 中 ctx 作为类的属性存在,属性名为 ctx

// controller 实例化时会自动把 ctx 传递进来

const ip = this.ctx.ip;

}

}

框架里继承了该对象,并通过 Extend 机制扩展了很多非常有用的属性和方法。

Koa 内置 API

ctx.req

Node 的 request 对象。

ctx.res

Node 的 response 对象。

不支持 绕开 Koa 对 response 的处理。 避免使用如下 node 属性:

res.statusCode

res.writeHead()

res.write()

res.end()

ctx.request

Koa 的 Request 对象。

ctx.response

Koa 的 Response 对象。

ctx.state

在中间件之间传递信息以及将信息发送给模板时,推荐的命名空间。避免直接在 ctx 上加属性,这样可能会覆盖掉已有的属性,导致出现奇怪的问题。

ctx.state.user = await User.find(id);

这样后续在 controller 里可以通过 this.ctx.state.user 来获取对应的值。

module.exports = class extends think.Controller {

indexAction() {

const user = this.ctx.state.user;

}

}

ctx.app

应用实例引用,等同于 think.app。

ctx.cookies.get(name, [options])

获取 cookie,不建议使用,推荐 ctx.cookie(name)

ctx.cookies.set(name, value, [options])

设置 cookie,不建议使用,推荐 ctx.cookie(name, value, options)

ctx.throw([msg], [status], [properties])

辅助方法,抛出包含 .status 属性的错误,默认为 500。该方法让 Koa 能够根据实际情况响应。并且支持如下组合:

ctx.throw(403)

ctx.throw('name required', 400)

ctx.throw(400, 'name required')

ctx.throw('something exploded')

例如 this.throw('name required', 400) 等价于:

let err = new Error('name required');

err.status = 400;

throw err;

注意,这些是用户级别的错误,被标记了 err.expose,即这些消息可以用于响应客户端。显然,当你不想泄露失败细节的时候,不能用它来传递错误消息。

你可以传递一个 properties 对象,该对象会被合并到 error 中,有助于修改传递给上游中间件的极其友好的错误。

ctx.throw(401, 'access_denied', { user: user });

ctx.throw('access_denied', { user: user });

Koa 使用 http-errors 创建错误对象。

ctx.assert(value, [msg], [status], [properties])

当 !value为真时抛出错误的辅助方法,与 .throw() 相似。类似于 node 的 assert() 方法。

this.assert(this.user, 401, 'User not found. Please login!');Koa 使用 http-assert 实现断言.

ctx.respond

如不想使用 Koa 内置的 response 处理方法,可以设置 ctx.respond = false;。这时你可以自己设置原始的 res 对象来处理响应。

注意这样使用是 不被 Koa 支持的,因为这样有可能会破坏 Koa 的中间件和 Koa 本身提供的功能。这种用法只是作为一种 hack ,为那些想要在Koa中使用传统的fn(req, res)的方法和中间件的人提供一种便捷方式。

ctx.header

获取所有的 header 信息,等同于 ctx.request.header。

const headers = ctx.headers;

ctx.headers

获取所有的 header 信息,等同于 ctx.header。

ctx.method

获取请求类型,大写。如:GET、POST、DELETE。

const method = ctx.method;

ctx.method=

设置请求类型(并不会修改当前 HTTP 请求的真实类型),对有些中间件的场景下可能有用,如:methodOverride()。

ctx.method = 'COMMAND';

ctx.url

获取请求地址。

ctx.url=

设置请求地址,对 URL rewrite 有用。

ctx.originalUrl

获取原始的请求 URL

ctx.origin

获取请求源 URL,包括协议和主机。

ctx.origin

// => http://example.com

ctx.href

获取请求完整的 URL,包括协议、主机和 url。

ctx.href

// => http://example.com/foo/bar?q=1

ctx.path

获取请求路径名。

ctx.path=

设置请求路径名,如果查询参数存在则保留。

ctx.query

获取解析后的查询参数,如果不存在查询参数则返回一个空对象。注意这个方法不支持嵌套参数的解析。

例如 "color=blue&size=small"

{

color: 'blue',

size: 'small'

}

ctx.query=

通过给定的对象设置查询参数。注意这个赋值方法不支持嵌套对象。

ctx.query = { next: '/login' }

ctx.querystring

获取原始查询字符串,不带问号。

ctx.querystring=

设置原始查询字符串。

ctx.search

获取原始查询字符串,带问号。

ctx.search=

设置原始查询字符串。

ctx.host

如果存在则获取主机(hostname:port)。当 app.proxy 为 true 时,使用 X-Forwarded-Host 的值,否则使用 Host 的值。

ctx.hostname

如果存在则获取主机名。当 app.proxy 为 true 时,使用 X-Forwarded-Host 的值,否则使用 Host 的值。

ctx.charset

如果存在则为请求的字符集,否则为 undefined:

ctx.charset

// => "utf-8"

ctx.fresh

检查请求的缓存是否可用,即内容没有发生改变。此方法用来验证协商缓存 If-None-Match / ETag、If-Modified-Since 和 Last-Modified。此方法应该在设置了以上一个或多个响应头部的时候调用。

// freshness check requires status 20x or 304

ctx.status = 200;

ctx.set('ETag', '123');

// cache is ok

if (ctx.fresh) {

ctx.status = 304;

return;

}

// cache is stale

// fetch new data

ctx.body = await db.find('something');

ctx.stale

和 ctx.fresh 相反。

ctx.socket

获取请求的套接字实体。

ctx.protocol

获取请求的协议类型,值为 https 或者 http,当 app.proxy 配置为 true 值支持从 X-Forwarded-Proto header 里获取。

具体的判断策略为:如果 req.socket.encrypted 为真,那么直接返回 https,否则如果配置了 app.proxy 为 true,那么从 X-Forwarded-Proto header 里获取,默认值为 http。

这么做是因为有时候并不会让 Node.js 直接对外提供服务,而是在前面用 web server(如:nginx)做反向代理,由 web server 来提供 HTTP(S) 服务,web server 与 Node.js 之间始终用 HTTP 交互。

这时候 Node.js 拿到的协议始终都是 http,真实的协议只有 web server 知道,所以要让 Node.js 拿到真实的协议时,就需要 web server 与 Node.js 定义特殊的字段来获取,推荐的自定义 header 为 X-Forwarded-Proto。为了安全性,只有设置了 app.proxy 为 true 是才会这样获取(production.js 里默认配置了为 true)。

ssl on;

# SSL certificate

ssl_certificate /usr/local/nginx/ssl/domain.crt;

ssl_certificate_key /usr/local/nginx/ssl/domain.key;

location = /index.js {

proxy_http_version 1.1;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $http_host;

proxy_set_header X-Forwarded-Proto "https"; # 这里告知 Node.js 当前协议是 https

proxy_set_header X-NginX-Proxy true;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

proxy_pass http://127.0.0.1:$node_port$request_uri;

proxy_redirect off;

}

ctx.secure

ctx.protocol == 'https' 的包装方法,检查该请求是否使用TLS隧道。

ctx.ip

获取客户端请求的地址。当 app.proxy 为 true 时使用 X-Forwarded-For 的值。

ctx.ips

当 X-Forwarded-For 存在并启用 app.proxy 时,返回回一个ip数组,这个数组是按上游到下游的顺序排序的。如果禁用则返回空数组。

ctx.subdomains

返回子域名数组。

子域名是主机主域名之前以点符号进行分割的部分。一个应用的默认的域名是由主机后面的两部分组成的。通过 app.subdomainOffset 可以改变默认设置。

一个简单的例子,假如有一个域名是 tobi.ferrets.example.com, 如果 app.subdomainOffset 没有设置,ctx.subdomains 的值为 ["ferrets", "tobi"]。如果 app.subdomainOffset 设置为3,ctx.subdomains 的值为 ["tobi"]。

ctx.is(...types)

检查此次请求头部Content-Typ 字段是否包含给定的 mime 类型。如果没有请求体,则返回 null。如果没有内容类型或者没有匹配到给定的 mime 类型则返回 false。如果匹配到了就返回相应的 content-type。

// With Content-Type: text/html; charset=utf-8

ctx.is('html'); // => 'html'

ctx.is('text/html'); // => 'text/html'

ctx.is('text/*', 'text/html'); // => 'text/html'

// When Content-Type is application/json

ctx.is('json', 'urlencoded'); // => 'json'

ctx.is('application/json'); // => 'application/json'

ctx.is('html', 'application/*'); // => 'application/json'

ctx.is('html'); // => false

一个例子,如果你想让一个路由只接受图片,可以这样编码:

if (ctx.is('image/*')) {

// process

} else {

ctx.throw(415, 'images only!');

}

ctx.accepts(types)

检查是否支持给定的类型,如果支持则返回优先级最高的的类型,否则返回false。类型的值可能是一个或者多个 mime 类型字符串,例如:"application/json"、文件扩展名为 "json" 或者一个数组 ["json", "html", "text/plain"]。

// Accept: text/html

ctx.accepts('html');

// => "html"

// Accept: text/*, application/json

ctx.accepts('html');

// => "html"

ctx.accepts('text/html');

// => "text/html"

ctx.accepts('json', 'text');

// => "json"

ctx.accepts('application/json');

// => "application/json"

// Accept: text/*, application/json

ctx.accepts('image/png');

ctx.accepts('png');

// => false

// Accept: text/*;q=.5, application/json

ctx.accepts(['html', 'json']);

ctx.accepts('html', 'json');

// => "json"

// No Accept header

ctx.accepts('html', 'json');

// => "html"

ctx.accepts('json', 'html');

// => "json"

可以多次调用 ctx.accepts() 方法,或者使用分支语句:

switch (ctx.accepts('json', 'html', 'text')) {

case 'json': break;

case 'html': break;

case 'text': break;

default: ctx.throw(406, 'json, html, or text only');

}

ctx.acceptsEncodings(encodings)

检查是否支持编码,如果支持返回优先级最高的编码,否则返回 false。注意你应该将 identity 作为编码之一。

// Accept-Encoding: gzip

ctx.acceptsEncodings('gzip', 'deflate', 'identity');

// => "gzip"

ctx.acceptsEncodings(['gzip', 'deflate', 'identity']);

// => "gzip"

如果没有给参数则返回所有支持的编码数组:

// Accept-Encoding: gzip, deflate

ctx.acceptsEncodings();

// => ["gzip", "deflate", "identity"]

注意:如果客户端明确指定 identity;q=0,就不支持了 identity 编码(实际上就是不编码),此时这个方法将返回 false,你需要处理这个极端情况。

ctx.acceptsCharsets(charsets)

检查是否支持字符集,如果支持则返回优先级最高的字符集,否则返回 false。

// Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5

ctx.acceptsCharsets('utf-8', 'utf-7');

// => "utf-8"

ctx.acceptsCharsets(['utf-7', 'utf-8']);

// => "utf-8"

如果没有参数则返回所有支持字符集的数组,按优先级排序。

// Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5

ctx.acceptsCharsets();

// => ["utf-8", "utf-7", "iso-8859-1"]

ctx.acceptsLanguages(langs)

检查是否支持语言,如果支持返回优先级最高的语言,否则返回 false。

// Accept-Language: en;q=0.8, es, pt

ctx.acceptsLanguages('es', 'en');

// => "es"

ctx.acceptsLanguages(['en', 'es']);

// => "es"

如果没有参数则返回所有支持语言的数组,按优先级排序。

// Accept-Language: en;q=0.8, es, pt

ctx.acceptsLanguages();

// => ["es", "pt", "en"]

ctx.get(field)

返回请求头部指定字段的值。

const host = ctx.get('host');

ctx.body

获取响应体。

ctx.body=

设置响应体,支持以下几种:

字符串

Content-Type 默认为 text/html 或者 text/plain,这两种的字符集都是 utf-8,同时会设置 Content-Length 字段。

Buffer

Content-Type 默认为 application/octet-stream,也会设置 Content-Length 字段。

管道流

Content-Type 默认为 application/octet-stream。

当响应体为流时,会自动添加一个 onerror 的异常事件监听器来捕获任何异常。另外,当请求被关闭时(甚至在这之前),这个流会被销毁掉。如果你不想要这两个特性,就不要将响应体设置为流。你不会希望在代理中设置响应体为HTTP流的,因为这样会破坏基础连接。

更多内容请看:https://github.com/koajs/koa/pull/612。

这个例子中添加了异常捕获并且不会自动销毁 HTTP 流:

const PassThrough = require('stream').PassThrough;

app.use(function * (next) {

ctx.body = someHTTPStream.on('error', ctx.onerror).pipe(PassThrough());

});

json字符串化的对象或数组

Content-Type 默认为 application/json。包括文本对象和数组。

设置为null, 没有响应内容。

如果没有设置 ctx.status,Koa 自动将响应状态码设置为 200 或者 204。

ctx.status

获取响应状态码,Koa 的 response.status 默认设置为404,而 node 中 res.statusCode 默认设置为 200。

ctx.status=

通过数字代码设置响应状态:

100 "continue"

101 "switching protocols"

102 "processing"

200 "ok"

201 "created"

202 "accepted"

203 "non-authoritative information"

204 "no content"

205 "reset content"

206 "partial content"

207 "multi-status"

208 "already reported"

226 "im used"

300 "multiple choices"

301 "moved permanently"

302 "found"

303 "see other"

304 "not modified"

305 "use proxy"

307 "temporary redirect"

308 "permanent redirect"

400 "bad request"

401 "unauthorized"

402 "payment required"

403 "forbidden"

404 "not found"

405 "method not allowed"

406 "not acceptable"

407 "proxy authentication required"

408 "request timeout"

409 "conflict"

410 "gone"

411 "length required"

412 "precondition failed"

413 "payload too large"

414 "uri too long"

415 "unsupported media type"

416 "range not satisfiable"

417 "expectation failed"

422 "unprocessable entity"

423 "locked"

424 "failed dependency"

426 "upgrade required"

428 "precondition required"

429 "too many requests"

431 "request header fields too large"

500 "internal server error"

501 "not implemented"

502 "bad gateway"

503 "service unavailable"

504 "gateway timeout"

505 "http version not supported"

506 "variant also negotiates"

507 "insufficient storage"

508 "loop detected"

510 "not extended"

511 "network authentication required"

注意:不要担心记不住这些字符串,如果你有字符错误会将会抛出一个异常并显示这个列表,能够快速纠正你的错误。

ctx.message

获取响应的状态消息。response.message 默认和 response.status 相关。

ctx.message=

设置响应状态消息。

ctx.length=

设置响应头部 Content-Length 的值。

ctx.length

如果存在获取响应头部 Content-Length 的长度,或者从 ctx.body 中计算出来,或者是undefined。

ctx.type

获取响应头部 Content-Type 的值,不包括字符集等参数。

const ct = ctx.type;

// => "image/png"

ctx.type=

通过 mime 字符串或者文件扩展名设置响应头部 Content-Type 的值。

ctx.type = 'text/plain; charset=utf-8';

ctx.type = 'image/png';

ctx.type = '.png';

ctx.type = 'png';

注意:在适当的时候为你选择一个字符集,例如当 response.type = 'html' 时 默认为 "utf-8",如果明确的指定完整的类型 response.type = 'text/html',不设置字符集。

ctx.headerSent

检查响应头部是否已经发送给客户端。用于检查客户是否可能被错误通知。

ctx.redirect(url, [alt])

对指定的 url 进行 302跳转。

"back"是特殊字符串,当 Referrer 不存在或者使用'/'进行跳转时,用来提供 Referrer 支持。

ctx.redirect('back');

ctx.redirect('back', '/index.html');

ctx.redirect('/login');

ctx.redirect('http://google.com');

如果想要修改默认状态码 302,可以在这个方法调用前后指定。要修改响应体,需要在这个方法调用之后指定。

ctx.status = 301;

ctx.redirect('/cart');

ctx.body = 'Redirecting to shopping cart';

ctx.attachment([filename])

将响应头 Content-Disposition 设置为 "attachment" 通知客户端可以进行下载。可以选择设置下载时的文件名。

ctx.set(fields)

通过一个对象设置多个响应头部字段:

ctx.set({

'Etag': '1234',

'Last-Modified': date

});

ctx.append(field, value)

通过给定的值追加响应头部。

ctx.append('Link', '');

ctx.remove(field)

移除指定的响应头部。

ctx.lastModified=

使用UTC格式的时间字符串设置最后修改时间。你可以设置 Date 对象实例或者时间字符串。

ctx.lastModified = new Date();

ctx.etag=

设置包含包装的响应的ETag。注意没有 response.etag 的取值方法。

ctx.etag = crypto.createHash('md5').update(ctx.body).digest('hex');

框架扩展 API

ctx.module

路由解析后的模块名,单模块项目下该属性值始终为空。默认是通过 think-router 模块解析。

module.exports = class extends think.Controller {

__before() {

// 获取解析后的 module

// 由于 module 已经被 node 使用,所以这里建议变量名不要为 module

const m = this.ctx.module;

}

}

ctx.controller

路由解析后的控制器名,默认是通过 think-router 模块解析。

module.exports = class extends think.Controller {

__before() {

// 获取解析后的 controller

const controller = this.ctx.controller;

}

}

ctx.action

路由解析后的操作名,默认是通过 think-router 模块解析。

module.exports = class extends think.Controller {

__before() {

// 获取解析后的 action

const action = this.ctx.action;

}

}

ctx.userAgent

可以通过 ctx.userAgent 属性获取用户的 userAgent。

const userAgent = ctx.userAgent;

if(userAgent.indexOf('spider')){

...

}

ctx.isGet

可以通过 ctx.isGet 判断当前请求类型是否是 GET。

const isGet = ctx.isGet;

if(isGet){

...

}

ctx.isPost

可以通过 ctx.isPost 判断当前请求类型是否是 POST。

const isPost = ctx.isPost;

if(isPost){

...

}

ctx.isCli

可以通过 ctx.isCli 判断当前请求类型是否是 CLI(命令行调用)。

const isCli = ctx.isCli;

if(isCli){

...

}

ctx.referer(onlyHost)

onlyHost {Boolean} 是否只返回 host

return {String}

获取请求的 referer。

const referer1 = ctx.referer(); // http://www.thinkjs.org/doc.html

const referer2 = ctx.referer(true); // www.thinkjs.orgctx.referrer(onlyHost)

等同于 referer 方法。

ctx.isMethod(method)

method {String} 请求类型

return {Boolean}

判断当前请求类型与 method 是否相同。

const isPut = ctx.isMethod('PUT');

ctx.isAjax(method)

method {String} 请求类型

return {Boolean}

判断是否是 ajax 请求(通过 header 中 x-requested-with 值是否为 XMLHttpRequest 判断),如果执行了 method,那么也会判断请求类型是否一致。

const isAjax = ctx.isAjax();

const isPostAjax = ctx.isAjax('POST');

ctx.isJsonp(callbackField)

callbackField {String} callback 字段名,默认值为 this.config('jsonpCallbackField')

return {Boolean}

判断是否是 jsonp 请求。

const isJsonp = ctx.isJson('callback');

if(isJsonp){

ctx.jsonp(data);

}

ctx.jsonp(data, callbackField)

data {Mixed} 要输出的数据

callbackField {String} callback 字段名,默认值为 this.config('jsonpCallbackField')

return {Boolean} false

输出 jsonp 格式的数据,返回值为 false。可以通过配置 jsonContentType 指定返回的 Content-Type。

ctx.jsonp({name: 'test'});

//output

jsonp111({

name: 'test'

})

ctx.json(data)

data {Mixed} 要输出的数据

return {Boolean} false

输出 json 格式的数据,返回值为 false。可以通过配置 jsonContentType 指定返回的 Content-Type。

ctx.json({name: 'test'});

//output

{

name: 'test'

}

ctx.success(data, message)

data {Mixed} 要输出的数据

message {String} errmsg 字段的数据

return {Boolean} false

输出带有 errno 和 errmsg 格式的数据。其中 errno 值为 0,errmsg 值为 message。

{

errno: 0,

errmsg: '',

data: ...

}

字段名 errno 和 errmsg 可以通过配置 errnoField 和 errmsgField 来修改。

ctx.fail(errno, errmsg, data)

errno {Number} 错误号

errmsg {String} 错误信息

data {Mixed} 额外的错误数据

return {Boolean} false

{

errno: 1000,

errmsg: 'no permission',

data: ''

}

字段名 errno 和 errmsg 可以通过配置 errnoField 和 errmsgField 来修改。

ctx.expires(time)

time {Number} 缓存的时间,单位是毫秒。可以 1s,1m 这样的时间

return {undefined}

设置 Cache-Control 和 Expires 缓存头。

ctx.expires('1h'); //缓存一小时

ctx.config(name, value, m)

name {Mixed} 配置名

value {Mixed} 配置值

m {String} 模块名,多模块项目下生效

return {Mixed}

获取、设置配置项,内部调用 think.config 方法。

ctx.config('name'); //获取配置

ctx.config('name', value); //设置配置值

ctx.config('name', undefined, 'admin'); //获取 admin 模块下配置值,多模块项目下生效

ctx.param(name, value)

name {String} 参数名

value {Mixed} 参数值

return {Mixed}

获取、设置 URL 上的参数值。由于 get、query 等名称已经被 Koa 使用,所以这里只能使用 param。

ctx.param('name'); //获取参数值,如果不存在则返回 undefined

ctx.param(); //获取所有的参数值,包含动态添加的参数

ctx.param('name1,name2'); //获取指定的多个参数值,中间用逗号隔开

ctx.param('name', value); //重新设置参数值

ctx.param({name: 'value', name2: 'value2'}); //重新设置多个参数值

ctx.post(name, value)

name {String} 参数名

value {Mixed} 参数值

return {Mixed}

获取、设置 POST 数据。请求类型为 POST, PUT, DELETE, PATCH, LINK, UNLINK 时才可以通过 post 方法获取提交的数据。

ctx.post('name'); //获取 POST 值,如果不存在则返回 undefined

ctx.post(); //获取所有的 POST 值,包含动态添加的数据

ctx.post('name1,name2'); //获取指定的多个 POST 值,中间用逗号隔开

ctx.post('name', value); //重新设置 POST 值

ctx.post({name: 'value', name2: 'value2'}); //重新设置多个 POST 值

有时候提交的数据是个复合的数据,这时候拿到的数据格式为下面的格式:

{ action: 'create',

'data[0][username]': '',

'data[0][nickname]': '',

'data[0][password]': ''

}实际上我们希望 data 字段数据为数组,这时候可以使用 think-qs 中间件来支持这种数据格式。

ctx.file(name, value)

name {String} 参数名

value {Mixed} 参数值

return {Mixed}

获取、设置文件数据,文件会保存在临时目录下,为了安全,请求结束后会删除。如果需要使用对应的文件,可以通过 fs.rename 方法移动到其他地方。

ctx.file('name'); //获取 FILE 值,如果不存在则返回 undefined

ctx.file(); //获取所有的 FILE 值,包含动态添加的数据

ctx.file('name', value); //重新设置 FILE 值

ctx.file({name: 'value', name2: 'value2'}); //重新设置多个 FILE 值

文件的数据格式为:

{

"size": 287313, //文件大小

"path": "/var/folders/4j/g57qvmmd1lb_9h605w_d38_r0000gn/T/upload_fa6bf8c44179851f1cfec99544b4ef22", //临时存放的位置

"name": "An Introduction to libuv.pdf", //文件名

"type": "application/pdf", //类型

"mtime": "2017-07-02T07:55:23.763Z" //最后修改时间

}

文件上传是通过 think-payload 模块解析的,可以配置限制文件大小之类的参数。

const fs = require('fs');

const path = require('path');

const rename = think.promisify(fs.rename, fs); // 通过 promisify 方法把 rename 方法包装成 Promise 接口

module.exports = class extends think.Controller {

async indexAction(){

const file = this.file('image');

// 如果上传的是 png 格式的图片文件,则移动到其他目录

if(file && file.type === 'image/png') {

const filepath = path.join(think.ROOT_PATH, 'runtime/upload/a.png');

think.mkdir(path.dirname(filepath));

await rename(file.path, filepath)

}

}

}

如果上传多个同名的文件时(如:input 标签里设置了 multiple 属性),默认只会获取到一个。如果想获取多个的话,需要在 src/config/middleware.js 文件里 payload 中间件添加 multiples 属性,如:

{

handle: 'payload',

options: {

multiples: true

}

}

此时通过 this.file('name') 获取的值为数组,里面包含了多个上传的文件。

ctx.cookie(name, value, options)

name {String} Cookie 名

value {mixed} Cookie 值

options {Object} Cookie 配置项

return {Mixed}

获取、设置 Cookie 值。

ctx.cookie('name'); //获取 Cookie

ctx.cookie('name', value); //设置 Cookie

ctx.cookie(name, null); //删除 Cookie

ctx.cookie(name, null, {

path: '/'

})

设置 Cookie 时,如果 value 的长度大于 4094,则触发 cookieLimit 事件,该事件可以通过 think.app.on("cookieLimit") 来捕获。

删除 Cookie 时,必须要设置 domain、path 等参数和设置的时候相同,否则因为浏览器的同源策略无法删除。

ctx.service(name, m, ...args)

name {String} 要调用的 service 名称

m {String} 模块名,多模块项目下生效

return {Mixed}

获取 service,如果是类则实例化,否则直接返回。等同于 think.service。

// 获取 src/service/github.js 模块

const github = ctx.service('github');

ctx.download(filepath, filename)

filepath {String} 下载文件的路径

filename {String} 下载的文件名,如果没有则从 filepath 中获取。

下载文件,会通过 content-disposition 模块设置 Content-Disposition 头信息。

const filepath = path.join(think.ROOT_PATH, 'a.txt');

ctx.download(filepath);

如果文件名中含有中文导致乱码,那么可以自己手工指定 Content-Disposition 头信息,如:

const userAgent = this.userAgent().toLowerCase();

let hfilename = '';

if (userAgent.indexOf('msie') >= 0 || userAgent.indexOf('chrome') >= 0) {

hfilename = `=${encodeURIComponent(filename)}`;

} else if(userAgent.indexOf('firefox') >= 0) {

hfilename = `*="utf8''${encodeURIComponent(filename)}"`;

} else {

hfilename = `=${new Buffer(filename).toString('binary')}`;

}

ctx.set('Content-Disposition', `attachment; filename${hfilename}`)

ctx.download(filepath)

如发现文档中的错误,请点击这里修改本文档,修改完成后请 pull request,我们会尽快合并、更新。

友情链接

奇舞团博客

w3ctech

开源中国

其他项目

奇舞周刊

FireKylin

切换语言

简体中文

English

参与项目

GitHub 源码

问题反馈

贡献者名单

联系我们

关于我们

大事记

QQ群: 339337680

@2013 - 2024 ThinkJS 备案号:皖ICP备16024379号-1

3张表,不同骨代谢指标的特点及临床意义全搞定_澎湃号·湃客_澎湃新闻-The Paper

不同骨代谢指标的特点及临床意义全搞定_澎湃号·湃客_澎湃新闻-The Paper下载客户端登录无障碍+13张表,不同骨代谢指标的特点及临床意义全搞定2021-01-28 14:01来源:澎湃新闻·澎湃号·湃客字号原创 8770 医学界内分泌频道*本文所涉及专业部分,仅供医学专业人士阅读参考全网最全有关“骨代谢生化标志物“的解读!近年来,骨质疏松症已经成为我国50岁以上人群的重要健康问题,骨代谢生化指标对代谢性骨病的鉴别十分重要,在骨质疏松的早诊早治过程中越来越收到重视,来自复旦大学附属第五人民医院内分泌科刘军教授带我们解读骨代谢生化指标的奥秘。什么是骨代谢生化标志物人的一生都处于骨转换过程中,骨代谢生化标志物是指骨转换过程中产生的一些代谢物,可反映骨代谢变化速率、破骨和成骨细胞功能、骨转换的频率和速率,可用于骨质疏松诊断分型、预测骨折风险、抗骨质疏松疗效评价、代谢性骨病鉴别诊断。图1 骨新陈代谢循环示意图不同骨代谢生化标志物,临床意义有所不同骨代谢生化标志物有3种不同类别,包括钙磷代谢指标、骨形成标志物和骨吸收标志物。刘军教授为我们介绍了不同类别的骨代谢生化标志物的含义。钙磷代谢指标包括甲状旁腺素(PTH)、降钙素(CT)、维生素D及其代谢产物、血钙、血磷指标。表1 钙磷代谢指标的特点及临床意义骨形成标志物包括碱性磷酸酶(ALP)、骨特异性碱性磷酸酶(BALP)、骨钙素(OC)、I型前胶原羧基末端肽(PICP)/I型前胶原氨基末端肽(PINP)、骨保护素(OPG)。表2 骨形成标志物的特点及临床意义骨吸收标志物包括抗酒石酸酸性磷酸酶(TRACP)、I型胶原羧基末端肽(CTX)、I型胶原氨基末端肽(NTX)、尿吡啶啉(Pyr)、尿脱氧吡啶啉(D-Pyr)、尿I型胶原羧基末端肽(U-CTX)、尿I型胶原氨基末端肽(U-NTX)、空腹2小时尿钙/肌酐比值(Ca/Cr),将各标志物的特点与临床意义整理如下表。表3 骨吸收标志物的特点及临床意义骨代谢生化标志物数据可以给我们带来什么?该如何使用?▌ 鉴定骨折风险骨再吸收标志物β-CTX是一个鉴定骨折风险的有用指标,β-CTX联合其他因素能更好评估骨折风险。图2 各危险因素影响下患者发生骨折的风险程度▌ 诊断骨质疏松及确认分型(具体方法见图3):图3 常见代谢性骨病骨生化指标变化▌ 监测骨质疏松治疗疗效相较骨密度,骨标志物可以反映全身性的骨代谢变化,IOF推荐使用骨标志物作为监测和随访的指标,在3~6个月即能反映疗效和患者的治疗依从性。联合BMD检测,可以作为重要的诊断工具。图4 骨质疏松治疗监测指标及建议周期专家简介刘军复旦大学附属上海市第五人民医院副院长、教授、硕士生导师闵行区领军人才、闵行区学科带头人、上海市内分泌重点专科负责人上海市糖尿病学会委员中国卫生信息与健康医疗大数据学会糖尿病专业委员会常委上海市内分泌学会肝病与代谢学组委员中西医结合学会内分泌代谢专业委员会委员中华医学会肝病与代谢学组委员上海市医师协会内分泌代谢科医师分会委员上海市医学会内分泌科专科分会性腺学组委员上海市糖尿病学会基础学组委员国家科技奖励评审专家《Frontiers in Endocrinology》审稿专家2012年在丹麦steno糖尿病中心留学访问先后主持或参与国家自然金基金课题2项、上海市科委课题5项、上海市卫生局课题9项、复旦大学科研基金5项以第一或通讯作者共发表论文143余篇,其中SCI收录论文26篇,中华系列论著31篇主编出版书籍5本,参编5本获得上海市医学科技进步三等奖1项,实用新型专利3项本文来源丨医学界内分泌频道综合整理自医生站课程报道专家丨刘军教授本文整理丨医学界报道组-8770责任编辑丨泡芙版权声明本文原创,转载需联系授权-End-原标题:《3张表,不同骨代谢指标的特点及临床意义全搞定!》阅读原文特别声明本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问http://renzheng.thepaper.cn。+1收藏我要举报查看更多查看更多开始答题扫码下载澎湃新闻客户端Android版iPhone版iPad版关于澎湃加入澎湃联系我们广告合作法律声明隐私政策澎湃矩阵澎湃新闻微博澎湃新闻公众号澎湃新闻抖音号IP SHANGHAISIXTH TONE新闻报料报料热线: 021-962866报料邮箱: news@thepaper.cn沪ICP备14003370号沪公网安备31010602000299号互联网新闻信息服务许可证:31120170006增值电信业务经营许可证:沪B2-2017116© 2014-2024 上海东方报业有限公

环磷酰胺(CTX)的作用机制-有来医生

(CTX)的作用机制-有来医生有来医生环磷酰胺(CTX)的作用机制楚天舒风湿免疫科主任医师河南省人民医院三甲全国第83环磷酰胺(CTX)是化疗药,叫做烷化剂,主要是直接作用于细胞的DNA,从而损伤肿瘤细胞。CTX的免疫抑制机制和它与糖皮质激素的协同作用具体如下:一、免疫抑制机制:1、使T及B淋巴细胞绝对数目减少:这意味着CTX可以减少体内淋巴细胞的数量,从而降低免疫反应;2、明显抑制淋巴细胞对特异性抗原刺激后的母细胞转化:这表示CTX可以抑制淋巴细胞对特定抗原的响应,进一步削弱免疫反应;3、抑制对新抗原的抗体反应及皮肤迟缓变态反应:这表明CTX可以抑制针对新抗原的免疫反应,以及一种称为皮肤迟缓变态反应的免疫反应;4、降低升高的免疫球蛋白水平,长期使用(几年)后有可能出现低丙球蛋白血症:这意味着CTX可以降低过高的免疫球蛋白水平,如果长期使用,可能会导致血液中的免疫球蛋白水平过低,形成低丙球蛋白血症;5、试管内选择性抑制B淋巴细胞功能,减少某些B淋巴细胞自发产生免疫球蛋白和抑制一般的有丝分裂原受刺激后的免疫球蛋白产生:这表示CTX可以在试管内选择性地抑制B淋巴细胞的功能,从而减少免疫球蛋白的产生;6、使增高的免疫球蛋白降至正常:这意味着CTX可以使过高的免疫球蛋白水平恢复正常。二、CTX与糖皮质激素协同作用:CTX与糖皮质激素联合使用时,两药作用协同,可以取得更好的免疫抑制效果。这是因为CTX主要作用于免疫系统的定向干细胞,抑制细胞的分化与增殖,而糖皮质激素则可以直接影响淋巴细胞的功能,两者联合使用可以更快、更有效地抑制免疫反应。参考资料:[1]王玉浔等主编.肾脏内科学基础与实践 第2版[M].2019.032023-12-19浏览次本内容不能代替面诊,如有不适请尽