利用angular4和nodejs-express构建一个简单的网站(二)——设置跨域访问和安装基本依赖构建数据库
大家好,今天本人给大家带来文章《利用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学习网公众号吧!

- 上一篇
- 利用angular4和nodejs-express构建一个简单的网站(三)—express访问mysql

- 下一篇
- JSP第二篇【内置对象的介绍、4种属性范围、应用场景】
-
- 凶狠的日记本
- 这篇文章内容真及时,太细致了,很好,码住,关注老哥了!希望老哥能多写数据库相关的文章。
- 2023-02-22 05:01:13
-
- 疯狂的树叶
- 感谢大佬分享,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,帮助很大,总算是懂了,感谢作者大大分享文章!
- 2023-02-21 15:49:49
-
- 数据库 · MySQL | 21小时前 | 索引 数据类型 字符集 存储引擎 CREATETABLE
- MySQL新建表操作指南与建表技巧
- 462浏览 收藏
-
- 数据库 · MySQL | 1个月前 | 条件判断
- CASEWHEN条件判断的嵌套使用详解与实战场景分析
- 469浏览 收藏
-
- 数据库 · MySQL | 1个月前 | java php
- CSV文件批量导入MySQL的性能优化秘籍大揭秘
- 289浏览 收藏
-
- 数据库 · MySQL | 1个月前 |
- GaleraCluster多主集群配置与冲突解决攻略
- 239浏览 收藏
-
- 数据库 · MySQL | 1个月前 | 窗口函数实战
- MySQL窗口函数实战案例深度剖析
- 315浏览 收藏
-
- 数据库 · MySQL | 1个月前 | 自定义函数
- MySQL插件开发入门:自定义函数(UDF)编写指南
- 184浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
-
- 笔灵AI生成答辩PPT
- 探索笔灵AI生成答辩PPT的强大功能,快速制作高质量答辩PPT。精准内容提取、多样模板匹配、数据可视化、配套自述稿生成,让您的学术和职场展示更加专业与高效。
- 16次使用
-
- 知网AIGC检测服务系统
- 知网AIGC检测服务系统,专注于检测学术文本中的疑似AI生成内容。依托知网海量高质量文献资源,结合先进的“知识增强AIGC检测技术”,系统能够从语言模式和语义逻辑两方面精准识别AI生成内容,适用于学术研究、教育和企业领域,确保文本的真实性和原创性。
- 25次使用
-
- AIGC检测-Aibiye
- AIbiye官网推出的AIGC检测服务,专注于检测ChatGPT、Gemini、Claude等AIGC工具生成的文本,帮助用户确保论文的原创性和学术规范。支持txt和doc(x)格式,检测范围为论文正文,提供高准确性和便捷的用户体验。
- 30次使用
-
- 易笔AI论文
- 易笔AI论文平台提供自动写作、格式校对、查重检测等功能,支持多种学术领域的论文生成。价格优惠,界面友好,操作简便,适用于学术研究者、学生及论文辅导机构。
- 42次使用
-
- 笔启AI论文写作平台
- 笔启AI论文写作平台提供多类型论文生成服务,支持多语言写作,满足学术研究者、学生和职场人士的需求。平台采用AI 4.0版本,确保论文质量和原创性,并提供查重保障和隐私保护。
- 35次使用
-
- golang MySQL实现对数据库表存储获取操作示例
- 2022-12-22 499浏览
-
- 搞一个自娱自乐的博客(二) 架构搭建
- 2023-02-16 244浏览
-
- B-Tree、B+Tree以及B-link Tree
- 2023-01-19 235浏览
-
- mysql面试题
- 2023-01-17 157浏览
-
- MySQL数据表简单查询
- 2023-01-10 101浏览