当前位置:首页 > 文章列表 > 数据库 > MySQL > 利用angular4和nodejs-express构建一个简单的网站(二)——设置跨域访问和安装基本依赖构建数据库

利用angular4和nodejs-express构建一个简单的网站(二)——设置跨域访问和安装基本依赖构建数据库

来源:SegmentFault 2023-02-16 15:34:50 0浏览 收藏

大家好,今天本人给大家带来文章《利用angular4和nodejs-express构建一个简单的网站(二)——设置跨域访问和安装基本依赖构建数据库》,文中内容主要涉及到MySQL、Node.js、typescript、javascript、html5,如果你对数据库方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

在上面一章中,我创建了前端的angular4框架程序和后端的nodejs-express框架程序,在这一章中,我准备对前后端程序进行一些简单的配置,然后将后台数据库创建起来。
好的!让我们开始吧。我开发这个网站用的开发工具是visual studio code,这个开发工具是由微软免费提供的,里面的插件很丰富,特别对angular和express开发支持的很好。

后端程序配置

因为是用express-generator自动生成的express应用。基本配置都已经完成了。随着后面开发的进一步深入,我们再慢慢添加功能。因为刚开始开发,所以还不涉及服务器转发等内容,我们先将跨域访问设置好并将其他几个需要用到的插件安装一下:

1、设置express服务可以跨域访问。

我的后端程序目录为server,让我们用visual studio code打开server目录,找到app.js文件,在所有的路由指令,即(app.use)之前,输入以下内容:

var allowCrossDomain = function (req, res, next) {
  res.header('Access-Control-Allow-Origin', 'http://localhost:4200');
  res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
  res.header('Access-Control-Allow-Headers', 'Content-Type,Authorization');
  res.header('Access-Control-Allow-Credentials', 'true');
  next();
};
app.use(allowCrossDomain);

'Access-Control-Allow-Origin'
:允许进行跨域访问的前端地址,因为利用ng serve启动angular程序,默认的端口是4200,所以,我这里设置允许
http://localhost:4200
地址可以对服务器内容进行跨域访问。
'Access-Control-Allow-Methods'
:允许进行跨域访问的方法,我们这里主要用到的是GET和POST两种方法。
'Access-Control-Allow-Headers'
:允许前端进行跨域访问的头部列表,我们的程序需要进行用户名认证,所以这里设置为
'Content-Type,Authorization'

'Access-Control-Allow-Credentials'
:发送Ajax时,Request header中便会带上 Cookie 信息。
现在为止,先设置这些,后面还有具体路由的配置和jwt认证等内容。等用到时,我们再一一讲解,现在主要先要保证前端程序能够访问到服务器中的内容。

2、mysql支持插件

我的网站需要数据库存储用户和生日信息,需要访问mysql数据库,所以要在后端服务中加入mysql支持,安装插件很简单,只需在命令行窗口输入:

cnpm install --save mysql

3、文件上传处理插件

我的网站还需要上传朋友的照片图片,所以还需要对上传的文件进行处理。在这里我使用multiparty插件进行处理,该插件在命令行安装时,输入:

cnpm install --save multiparty

前端程序配置

同样,用visual studio code打开前端应用目录,我这里是目录名称直接命名为:front,前端的前期配置主要是对css框架和一些插件的配置。

1、CSS框架bootstrap配置。

BootStrap来自 Twitter,是目前比较热门的前端框架,因为用起来比较方便,而且我也很喜欢它的CSS风格。所以,我一直用这个框架来构建网页样式。
1.1、安装bootstrap。
安装bootstrap很简单,我安装的是bootstrap-V4版本,个人觉得这个版本的字体风格比V3版本要好看一些。直接在程序目录下,打开命令行,输入:

cnpm install --save bootstrap

默认安装的应该是V4版本。安装成功后,我从node_modules目录中将整个bootstrap目录拷贝到
"src/app/assets"目录下,其实只拷贝"dist/css/bootstrap.min.css"就应该可以了。在程序目录中找到.angular-cli.json文件,打开后,找到

"styles"
节点,在
"styles.css"
的上面输入
"assets/bootstrap/dist/css/bootstrap.min.css",

在网上看到直接在
"styles"
节点中引用node_modules目录中的bootstrap目录中的css文件也可以,但试了n多次,总不能成功引用,于是只好放弃了。

2、angular4的bootstrap插件ng-bootstrap的安装和配置

ng-bootstrap是angular4的一个bootstrap插件,因为bootstrap的js功能都是由jquery完成的,需要在angular中对jquery进行引用,这样就破坏了angular的风格,而ng-bootstrap将bootstrap的js操作都用typescript实现了,使用起来非常方便,而且它还加入了时间、日期等插件,使我们的开发更加方便。
2.1、安装ng-bootstrap。安装这个插件非常简单,只需在命令行输入:

cnpm install --save @ng-bootstrap/ng-bootstrap

2.2、引入ng-bootstrap
要使用ng-bootstrap还需要在angular的主模块中引入这个插件的module:(我的主模块是app.modules.ts)

import { NgbModule } from '@ng-bootstrap/ng-bootstrap';

导入这个模块后,还需要在app.modules的imports中声明这个模块:(记得后面要加上,foorRoot())

 imports: [
    BrowserModule,
    UsersModule,
    BirthdaysModule,
    NgbModule.forRoot(),
    ]

在需要用到ng-bootstrap的其他模块中也要引入这个模块,导入方法和主模块相同,只是将
NgbModule.forRoot()改为NgbModule就行了。
基本的前端配置暂时也就这些了。随着后面逐步深入,还有一些特殊的配置以及ng-bootstrap插件的用法,需要介绍,等用到时再说吧!

创建后端数据库

这个网站的后端数据库我采用的mysql数据库管理系统。mysql应该是大家最熟悉的数据库管理软件了,这里对它的用法也无需过多的介绍,如果各位以前没有接触过,可以参考“菜鸟教程”网站上的介绍。

1、需要用到的数据表。

1.1、创建数据库。
我的数据库名称为:birthday,登录mysql客户端后,输入:

create database birthday;

创建数据库。

1.2、创建数据表
数据库非常简单,主要用到两个数据表:user表和friend表,user表负责记录登录用户信息,friend表负责记录朋友们的生日和电话等信息。其中friend表的uid与user表的uid设置为外键约束。
user表建表的sql语句为:

create table user(
uid int(10) not null auto_increment, 
uname varchar(20) not null unique,
upass varchar(20) not null,
uemail varchar(20) null,
primary key (uid)
)engine=InnoDB default charset=utf8;

friend表建表的sql语句为:

create table friend(
fid int(10) not null auto_increment,
fname varchar(20) not null unique,
fbirth date not null,
fpnumber varchar(15) not null,
femail varchar(20) null,
fgroup varchar(10) null,
uid int not null,
state varchar(10) not null,
primary key (fid),
key fk_1 (uid)
)engine=InnoDB default charset=utf8;

注意:为了设置外键约束,这里的数据库引擎应该设置为InnoDB。

设置外键约束的语句为:

alter table friend add constraint fk_1 foreign key (uid) references user (uid) ON UPDATE CASCADE ON DELETE CASCADE;

OK! 数据库和数据表全部创建完毕了!

前后端环境的配置和数据库的创建就先进行到这里了。下一章我们将开始在express服务器端对mysql访问进行一些配置,针对前端的访问对服务器进行开发。下次见......

理论要掌握,实操不能落!以上关于《利用angular4和nodejs-express构建一个简单的网站(二)——设置跨域访问和安装基本依赖构建数据库》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

版本声明
本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
利用angular4和nodejs-express构建一个简单的网站(三)—express访问mysql利用angular4和nodejs-express构建一个简单的网站(三)—express访问mysql
上一篇
利用angular4和nodejs-express构建一个简单的网站(三)—express访问mysql
JSP第二篇【内置对象的介绍、4种属性范围、应用场景】
下一篇
JSP第二篇【内置对象的介绍、4种属性范围、应用场景】
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 茅茅虫AIGC检测:精准识别AI生成内容,保障学术诚信
    茅茅虫AIGC检测
    茅茅虫AIGC检测,湖南茅茅虫科技有限公司倾力打造,运用NLP技术精准识别AI生成文本,提供论文、专著等学术文本的AIGC检测服务。支持多种格式,生成可视化报告,保障您的学术诚信和内容质量。
    14次使用
  • 赛林匹克平台:科技赛事聚合,赋能AI、算力、量子计算创新
    赛林匹克平台(Challympics)
    探索赛林匹克平台Challympics,一个聚焦人工智能、算力算法、量子计算等前沿技术的赛事聚合平台。连接产学研用,助力科技创新与产业升级。
    48次使用
  • SEO  笔格AIPPT:AI智能PPT制作,免费生成,高效演示
    笔格AIPPT
    SEO 笔格AIPPT是135编辑器推出的AI智能PPT制作平台,依托DeepSeek大模型,实现智能大纲生成、一键PPT生成、AI文字优化、图像生成等功能。免费试用,提升PPT制作效率,适用于商务演示、教育培训等多种场景。
    56次使用
  • 稿定PPT:在线AI演示设计,高效PPT制作工具
    稿定PPT
    告别PPT制作难题!稿定PPT提供海量模板、AI智能生成、在线协作,助您轻松制作专业演示文稿。职场办公、教育学习、企业服务全覆盖,降本增效,释放创意!
    51次使用
  • Suno苏诺中文版:AI音乐创作平台,人人都是音乐家
    Suno苏诺中文版
    探索Suno苏诺中文版,一款颠覆传统音乐创作的AI平台。无需专业技能,轻松创作个性化音乐。智能词曲生成、风格迁移、海量音效,释放您的音乐灵感!
    56次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码