Node.js连接数据库的方法

【SQL server】NodeJs 服务器连接数据库 Node实现实时获取数据库数据并返回给请求 阅读详情

Node.js连接数据库的方法

  1. 在终端中使用命令安装mysql的依赖
npm install mysql
  1. db.js文件的编辑
var mysql = require("mysql");//导入mysql依赖包
//1.创建一个mysql的connection对象
//2.配置数据连接信息
var connection=mysql.createConnection({
    host:"localhost",//主机ip地址
    user:"root",
    port:3306,//数据库连接的端口号
    password:"123456",
    database:"school"
});
//3.开辟连接
connection.connect();
//4.执行curd(增删改查操作)
connection.query("select * from student",function(error,results,fields){
    //查询出错,直接抛出异常
    if(error)throw error;
    //查询成功
    console.log("result = ",results);
});
//5.关闭连接
connection.end();
  1. 注意点

    在连接mysql时可能会提示Client does not support authentication protocol requested by server 客户端不支持服务器请求的身份验证协议

    1. 打开cmd命令行,先进入mysql
    mysql -u root -p
    
    1. 输入下列命令(密码可以自行选择)
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
    
    1. 当显示Query OK, 0 rows affected就代表我们已经设置好了,直接进行连接即可
Node.js 入门指南:从零开始构建全栈应用 阅读详情

相关推荐

使用Node.js连接数据库编程

然后,我们创建了一个MongoClient实例,并使用连接字符串和选项连接到MongoDB服务器。如果连接成功,我们打印出成功的消息,并获取对数据库的引用。连接数据库是构建应用程序的重要步骤之一,它允许我们将数据存储在持久化的媒体中,并与之进行交互。通过使用Node.js和适当的数据库驱动程序,我们可以轻松地连接到数据库并执行各种数据库操作。在上面的代码中,我们首先获取对集合(collection)的引用,然后使用相应的方法执行操作。如果连接成功,我们打印出成功的消息,并获取对数据库的引用(

HackMasterX的博客 215

node.js-连接SQLserver数据库

1.在自己的项目JS文件夹中建文件:config.js、mssql.js和server.js以及api文件夹下的user.js。3.在mssql.js中对sql语句的二次封装。2.在config.js中封装数据库信息。4.在api/user.js下写接口代码。5.在server.js中配置启动文件。7.用postman测试接口。

weixin_46479909的博客 5801

Node.js连接数据库失败的处理方法

连接数据库失败可能是由于数据库服务器未启动、配置错误、权限问题、网络连接问题等原因造成的。通过检查数据库服务器状态、连接配置、权限设置以及网络连接,我们可以找到连接失败的原因并采取相应的处理措施。在连接数据库之前,首先要确保数据库服务器正常运行并且可以接受来自Node.js的连接请求。在连接数据库时,可以使用错误处理机制来捕获连接失败的错误并采取相应的处理措施。本文将介绍一些常见的连接数据库失败的原因和处理方法,并提供相应的源代码示例。确保使用的数据库用户具有足够的权限来连接数据库和执行所需的操作。

PixelDyno的博客 999

前端使用node.js连接sql.server数据库教程

最近项目中要用到node写接口然后连接公司现有的sql.server数据库,再把执行结果返回给前端(还是我),因为之前一直做前端这块,后端这方面不是很懂,花了很长的时间终于研究出来了(还是太菜了,走了很多弯路),所以写个博客,一是复习巩固,二是给其他有需要的小伙伴一个参考,尽量少走弯路,废话不多说,直接上代码。2.在自己的项目文件夹中建两个文件,config.js & mssql.js。4.对sql语句的二次封装 , mssql.js。6.启动文件,server.js。8.用postman测试接口。...

m0_67296095的博客 1万+

Electron与node-ibm_db模块:实现DB2数据库连接

Electron(前身为Atom Shell)是由GitHub开发,用于构建跨平台的桌面应用程序。它允许开发者使用Web技术(HTML, CSS, JavaScript)构建用户界面,并且运行在Mac, Windows, Linux等操作系统上。Electron将Chromium和Node.js封装在一个应用中,使得开发人员可以利用Web开发的技术栈来构建原生桌面应用。在数据密集型的应用开发中,数据库操作占据着核心地位。

weixin_30674431的博客 968

nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例.docx

nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例.docx

Node.js连接数据库

Nodejs连接Mysql数据库 用Navicat管理工具,新建一个数据库,node_db 新建一张user表 使用WebStrom新建一个项目Node.js,在此目录下新建demo01,再新建一个包命名为db 在db包下新建db.js文件,用来连接数据库 //导入依赖 var mysql = require("mysql"); //创建数据库连接 var connection = mysql.createConnection({ host:"127.0.0.1", //主机IP por

Java721的博客 5178

从CentOS迁移到openEuler 24.03 LTS:手把手教你部署Java+MySQL+Redis+Nginx全栈环境

本文详细指导如何从CentOS迁移到openEuler 24.03 LTS,并部署Java+MySQL+Redis+Nginx全栈环境。涵盖系统配置、软件安装、性能优化及环境验证,助力企业级用户高效完成服务器迁移与部署。

weixin_26938645的博客 388

Node.js sqlite3的db.close方法:正确关闭数据库连接

在Node.js环境中,sqlite3是一个广受欢迎的轻量级数据库库,它为开发者提供了一个简洁的API来与SQLite数据库进行交互。当完成数据库操作后,正确关闭数据库连接是一个重要的步骤,以确保资源得到释放并避免潜在的内存泄漏。方法的API函数定义和相应的代码示例解释,我们可以正确地关闭数据库连接,释放资源,并避免潜在的内存泄漏。方法是sqlite3库中的一个方法,用于关闭与SQLite数据库的连接。方法来关闭数据库连接。方法是sqlite3库中的一个重要方法,用于关闭与SQLite数据库的连接。

1287

吃透Chisel语言.02.Chisel+VS Code+Ubuntu/WSL2开发环境搭建与使用

既然是学Chisel语言,那肯定得先把环境配置好,磨刀不误砍柴工嘛。而且有个测试环境的话,在后期的学习过程中自己去试运行代码段可以加深学习效果。这里推荐使用Ubuntu或者基于WSL2(Windows Subsystem Linux 2)的Ubuntu,本人使用的是WSL2上的Ubuntu 20.04.3 LTS,在使用体验上与Ubuntu几乎没有区别,且能同时使用Windows提供的诸多便利。...

github-3rr0r的博客 8447

【架构师面试-缓存与搜索-1】-缓存与缓存置换策略源码实现

1:什么是缓存 缓存:加速数据访问的存储,降低延迟(latency),提升吞吐量(Throughput)的利器。 1:缓存演进历史 1. 查库 2. ConcurrentHashMap 3. LRU 4. Guava Cache 5. 分布式缓存(redis,MemCache) 6. 多级缓存 2:在什么地方加缓存 缓存对于每个开发者来说是相当熟悉了,为了提高程序的性能我们会去加缓存,但是在什么地方加缓存,如何加缓存呢? 举个栗子:假设一个网站,需要提高性能,缓存可以放在浏览器,可以放

chongfa2008的博客 6437

前端必知必会-Node.js连接MySQL 创建数据库

本文介绍了Node.js连接MySQL 创建数据库,如有问题欢迎私信和评论。

qq_24018193的博客 410

python爬取巨潮资讯网所有股票年报数据

爬虫获取巨潮资讯网数据

qq_42752524的博客 6112

如何断开mongodb数据库连接_Mongodb数据库连接

Mongodb数据库连接1. 首先我们需要 在包中安装 mongodb, 使用命令: npm install mongodb; 在安装包后,我们需要引用该包;如下:var mongo = require('mongodb');在Node.js中,当需要连接Mongodb数据库时,首先需要创建一个Mongodb数据库所在服务器的Server对象,作用是指定需要连接的MongoDB数据库所在的服务器。...

weixin_39618806的博客 312

使用GBIF获取生物多样性数据与GIS的结合

随着全球生物多样性的重要性日益凸显,越来越多的研究人员和保护机构开始利用地理信息系统(GIS)来分析和可视化生物多样性数据。GBIF(全球生物多样性信息设施)作为一个全球性的生物多样性数据库,提供了大量的物种分布和分类信息,为研究人员和保护工作者提供了宝贵的数据资源。本文将介绍如何使用GBIF API获取生物多样性数据,并将其与GIS技术相结合,以便更好地理解和研究生物多样性。利用GIS的强大功能,我们可以在地理空间上可视化物种分布、分析物种多样性的空间格局,并为保护生物多样性提供科学依据。

BnxBackend的博客 1763

【Mode】Mode expansion monitors

对于宽带仿真,因为被支持的模式可能是波长的函数,因此,推荐在波长范围内增加频率的采样点数量去计算支持的波导模式分布或者光纤模式分布。对于宽带仿真,如果在被计算模式上的频率点的数量与通过 frequency-domain monitors 被测量的频率点的数量不匹配,这种情况是正常的。Mode expansion monitors 对于仿真偏振转换器是十分有用的,比如,在偏振转换器中,当你想要提取从输入模式到输出模式的转换效率,或者提取一个装置的 S 参数。给出了进入到被选择模式中的合透射率,

u011699626的博客 2760

如何断开mongodb数据库连接_mongodb怎么关闭数据库连接?

mongodb连接数据库关闭数据库连接的方法:1、首先我们需要 在包中安装 mongodb, 使用命令: npm install mongodb; 在安装包后,我们需要引用该包;如下:varmongo=require('mongodb');在Node.js中,当需要连接Mongodb数据库时,首先需要创建一个Mongodb数据库所在服务器的Server对象,作用是指定需要连接的MongoDB...

weixin_39864453的博客 1370

【OpenClaw从入门到精通】第19篇:OpenClaw电商实战:从零搭建比价+库存监控+自动调价全自动化系统(2026实测附完整代码)

2026年OpenClaw成为全球最火开源项目,电商行业因其场景高频、数据标准化成为其核心落地领域。本文针对电商从业者面临的比价繁琐、库存混乱、调价滞后三大痛点,基于OpenClaw的“接入层-执行层-决策层”三层架构,从零拆解智能比价、多平台库存监控、动态自动调价三大核心场景的实现逻辑。文中包含完整的环境配置、技能安装、代码实现(含Python脚本与YAML配置)、执行结果验证,同时补充关键算法原理与避坑指南,兼顾新手入门与进阶提升。读者可直接参考本文实操流程,快速搭建属于自己的电商自动化系统,实现7×2

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2238

Node.js,C++,Java等语言连接 后台数据库方法总结

经过本次项目实战,我增加了Node.js连接后台数据库(MySQL)进行增、删、改、查的实践经历,再结合之前在其他项目中使用C++、Java等语言连接MySQL的经历,特在此对使用Node.js,C++,Java等语言连接后台数据库的方法进行一个归纳总结和集中展示。 一、Node.js连接MySQL数据库 Web开发中后台使用Node.js连接MySQL数据库十分简单,提供的有现成的、完整MySQ...

qq_41954113的博客 618

AutoSAR系列讲解(入门篇)2.1-AppL概述

该章主要是讲解SWC是如何在ECU中分布的

雪云飞星的博客 4万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

node.js中使用连接MongoDB数据库的方法

在node中使用mongogb数据库 首先要安装mongodb模块: npm install mongodb 连接MongoDB有两种方法: 通过实例化mongodb模块中提供的MongoClient类,然后使用这个实例化的对象来创建和管理mongodb连接; 使用字符串进行连接; 一、使用MongoClient 通过实例化一个MongoClient对象连接MongoDB数

pj_me 1226

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

node java数据_Node.js,C++,Java等语言连接 后台数据库方法总结

在线QQ客服:1922638专业的SQL Server、MySQL数据库同步软件在实际完成该项目之后,我增加了Node.js连接到后端数据库(MySQL)以添加,删除,修改和检查的实践经验,并结合了以前使用C ++的经验。 ,Java和其他语言以在其他项目中连接到MySQL。 ,这是使用Node.js,C ++,Java和其他语言连接到后端数据库的方法的摘要和集中展示。一,Node.js连接到My...

weixin_34576293的博客 321

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

node.js通过tedious连接SQLServer数据库方法封装

安装:npm install tediousvar Connection = require('tedious').Connection; var Request = require('tedious').Request; var connection = new Connection({ 'userName':'sa', //用户...

年轻正好 5228

Node.js 后端开发:优化数据库连接池的方法

在 Node.js 后端开发中,数据库操作是常见且关键的环节。数据库连接池的优化对于提高系统的性能、稳定性和资源利用率至关重要。本文旨在深入探讨在 Node.js 环境下优化数据库连接池的各种方法,涵盖从基础概念到实际应用的多个方面,帮助开发者更好地理解和运用连接池优化技术。本文首先介绍数据库连接池的核心概念和联系,包括原理和架构。接着阐述核心算法原理和具体操作步骤,并给出 Python 源代码示例。然后通过数学模型和公式详细讲解优化的理论基础。之后进行项目实战,展示代码实际案例和详细解释。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 945

node.js连接sql server

现在,您可以使用 Node.js 执行各种数据库操作,如查询、插入、更新、删除等。是 Node.js 与 SQL Server 连接的模块,您需要通过 npm(Node.js 包管理器)安装它。:您需要访问 SQL Server 数据库实例的连接信息,包括服务器名称、端口号、数据库名称、用户名和密码。现在,让我们深入了解如何使用 JavaScript 和 Node.js 连接到 SQL Server 数据库。分别为您的 SQL Server 用户名、密码、服务器名称和数据库名称。# 键入 Y 或 A。

dongfangxinding的博客 2273

sqlite3的db.wait方法:等待所有查询完成

方法是sqlite3库中的一个方法,它用于等待直到数据库的所有查询都完成。这个方法通常用于在关闭数据库连接之前,确保所有的数据库操作都已经完成,从而避免在关闭连接时还有未完成的查询导致错误。方法的API函数定义和相应的代码示例解释,我们可以在关闭数据库连接之前确保所有的数据库操作都已经完成,从而避免潜在的错误。方法来等待所有的查询完成。一旦所有的查询都完成,控制台将输出“所有查询已完成,现在可以安全关闭数据库连接。方法是sqlite3库中的一个重要方法,用于等待直到数据库的所有查询都完成。

1300
上一篇: super与this的区别
下一篇: nodejs项目的要点
一匹小羊驼
博客等级 码龄6年 40粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值