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

news/2024/4/27 16:38:23/文章来源:https://blog.csdn.net/weixin_34357962/article/details/88919442

在上面一章中,我创建了前端的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访问进行一些配置,针对前端的访问对服务器进行开发。下次见......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_749479.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前后端分离实践:基于vue实现网站前台的权限管理

Javascript做为当下的热门语言,用途很广泛,从前端到后端处处可见其存在,该技术如今在我们项目内部也大量使用来开发诸如CMS系统以及其他其他一些数据分析系统的前端页面,为此个人非常感兴趣并将其作为帽子卡的扩展内容来进行课余学…

空间如何装php,网站空间如何安装phpmyadmin

个人空间上安装php教程myadmin方法当然你有mysql教程数据库教程。 首先 下载 一份最新版的phpmyadmin mysql管理器。 解压后得到一个phpmyadmin的目录(你可以改名) 找到目录里的config.inc.php文件,打开 找到 $cfg[pmaabsoluteuri] 修改你将当然你有mysql数据库。首…

php sql网站模板,php: mssql

————Movesinternalrowpointermssql_execute—ExecutesastoredprocedureonaMSSQLserverdatabasemssql_fetch_array—Fetcharesultrowasanassociativearray,anumericarray,orbothmssql_fetch_assoc—Returnsanassociativearrayofthecurrentrowintheresultmssql_fetch_batch—…

在Microsoft Office SharePoint Server 2007中使用“我的网站”

12.7 “我的网站”是用于集中管理和存储您的文档、内容、链接以及联系人的个人网站。组织中的其他用户可以通过“我的网站”查找关于您和您的技能及兴趣的信息。内容提供商可以使用“我的网站”来自定义显示给用户的信息。 12.7.1 “我的网站”概述 “我的网站”可以提供&#…

***掉自已公司的网站,留下记录

因这段时间公司的网站被黑第2次了,引起了我的注意(其实是前段时间心态不好没理这个事),今天我就分析了一下WEB日志,发现了托管主机的一个问题。自已测试黑掉了。准备给香港的那家公司吵下架,看看能不能索赔…

常用SEO查询工具

SEO工作者经常需要一些SEO工具的辅助,比如网站收录查询、PR查询等等,以便节省自己的时间,让SEO变得更加轻松。那么,常用的SEO工具都有哪些呢?今天就介绍一些常用的SEO工具网址,并将其进行分类,希…

大型互联网站解决高并发的常见策略

一个运营的系统在正式上线后将会遇到各种层级的高并发请求,因此我们必须对此做出相应的策略和技术解决方案,首先我们需要认清系统的高并发由3个层面导致: 1. 传输层 大量用户对系统请求后,将会造成网络带宽和Web服务器的I/O瓶颈。…

Web 性能优化: 图片优化让网站大小减少 62%

2019独角兽企业重金招聘Python工程师标准>>> 摘要: 压缩各种格式的图片。 原文:Web 性能优化: 图片优化让网站大小减少 62%作者:前端小智Fundebug经授权转载,版权归原作者所有。 这是 Web 性能优化的第二篇…

C# 创建网站 无法启动与停止的问题

2019独角兽企业重金招聘Python工程师标准>>> 这个问题郁闷了近一天。这两天写Web网站安装,网上找到相关的创建网站代码有很多。 这里郁闷的问题是:用DirectoryEntry创建完网站后,可以响应删除,却无法停止与启动。 一当…

Piwik 1.9.1 发布,网站访问统计系统

Piwik 1.9.1 发布了,该版本修复了前几天刚发布的 1.9 的一些小 bug。 Piwik是一套基于PhpMySQL技术构建的开源网站访问统计系统,前身是phpMyVisites。Piwik可以给你详细的统计信息,比如网页 浏览人数, 访问最多的页面, 搜索引擎关键词等等&am…

《特别推荐》10套精美的免费网站后台管理系统模板

大部分的 Web 应用和动态网站都需要一个后台管理系统用于管理前台界面的信息展示以及用户信息。管理后台的设计虽然不像前台界面那样要求设计精美,但是也需要有清晰的管理模块划分,这样使用后台管理系统的人员才能够方便的进行操作和管理。下面收集了十款…

博客网站设置SSL证书

刚得到的域名是没有安全证书的,在地址栏https处有警告,在cPanel主域中也会提示有风险,因此我们需要给我们的网站设置SSL证书(b站视频教程) 1.登陆SSLforfree官方网站 登陆https://zerossl.com/,然后输入自…

python实用网站,查找合适的第三方库pip安装

链接: Find, install and publish Python packages with the Python Package Index 搜索并查找历史版本,以及复制pip指令,安装第三方库

python实用网站,查找程序报错的解决方法

程序报错信息: OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized错误提示 链接: 访问stackoverflow 搜索结果: 有效回答: 解决方案: import os os.environ["KMP_DUPLICATE_…

第一个爬虫项目-爬取唯美小姐姐网站

爬取唯美小姐姐网站 链接: 源代码文件下载地址 展示 源代码 import requests import re import os import time# 伪装 用于可以伪装成浏览器。 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.1…

20个学习CSS的绝佳网站——让你从入门到精通

CSS(层叠样式表)是一种简单的设计语言,能够将页面变漂亮这回事儿变的简单化。在HTML和XHTML中设定页面的样式,这是最常用的应用。但也可以应用于 XML类的文档,包括SVG和XUL。他负责管理网页的设计和外观。使用CSS&…

20个将JavaScript推到极致的网站

对于浏览器上的开发者来说,2011年又是相当精彩的一年。web开发者Phil Hawksworth在这篇文章中总结了web 上经典的JavaScript用法。 那些喜欢冒险体验前沿技术的开发者现在应该会非常开心。浏览器正变得越来越强大,上面有各种丰富的功能可以供开发者选择&…

编程学习好去处:35 个快速学习的编程网站

每个人都暗自地渴望成为一个创业者。现今技术型新兴产业和机会正值繁荣时期,我看到网上创业的公司比线下创业的公司多很多。技术创业,正如其名,意味着你的生意通常不是在线下进行的。像这种类型的创业,创业者应该懂得编码和设计工…

Ubuntu下Nginx做负载实现高性能WEB服务器3—PHP网站的部署和时间同步

接上篇文章,先上架构图 1.环境 网络拓扑 2.部署 此处以天空网络免费的视频网站搭建为例。 2.1 在外网代理机器(192.168.80.8)上下载网站源码包 rootubuntu:~# wget http://skyuc-download.stor.sinaapp.com/SKYUC_3.4.1_Free_php5.3.tar.bz2 …

zabbix博文和网站

大体思路过程 yum源安装zabbix 安装比较简单,网上资料也普遍是这种安装方法。缺点是卸载的时候需要删一堆文件和文件夹,容易出错。docker安装zabbix 掌握了Docker安装方式比Yum源安装zabbix省心,而且完全做到与宿主机的解耦,卸…